電商項目(上) css3新增選擇器: 選取屬於其父元素的首個子元素的指定選擇器 選取屬於其父元素的最後一個子元素的指定選擇器 匹配屬於其父元素的第n個子元素 選擇器匹配屬於其元素的第n個子元素的每個元素 定義文檔的頁面 定義導航鏈接的部分 定義文檔或節的頁腳 定義文檔中的節 定義其所處內容之外的內容 ...
電商項目(上)
css3新增選擇器:
:first-child:
選取屬於其父元素的首個子元素的指定選擇器
:last-child:
選取屬於其父元素的最後一個子元素的指定選擇器
:nth-child(n):
匹配屬於其父元素的第n個子元素
:nth-last-child(n):
選擇器匹配屬於其元素的第n個子元素的每個元素
header:
定義文檔的頁面
nav:
定義導航鏈接的部分
footer:
定義文檔或節的頁腳
article:
定義文檔中的節
aside:
定義其所處內容之外的內容
header nav footer article section main
<input type="email">
<input type="tel">
<input type="url">
<input type="number">
<input type="search">
<input type="range">
<input type="time"> // 小時分鐘
<input type="date"> // 年月日
<input type="datetime"> // 時間
<input type="month"> // 月年
placeholder
<input type="text" placeholder="請輸入用戶名">
<input type="text" autofocus> // 自動獲取焦點
<input type="file" multiple> // 多文件上傳
<input type="text" autocomplete="off"> // 自動完成功能
<input type="text" required> // 必填項 內容不為空
<input type="text" accesskey="s"> // 使用激活元素的快捷鍵
<form action="">
<fieldset>
<legend>學生<legend>
<label for="userName">姓名:</label>
<input type="text" name="userName" id="userName" placeholder="請輸入用戶名"><br>
<label for="userPhone">手機號碼:</label>
<input type="tel" name="userPhone" id="userPhone" pattern="^\d{10}$"><br>
<label for="email">郵箱地址:</label>
<input type="email" required name="email" id="email"><br>
<label for="collage">學院:</label>
<input type="text" name="collage" id="collage" list="cList" placeholder="請選擇"><br>
<datalist id="cList">
<option value="學院"></option>
<option value="java"></option>
<option value="c"></option>
</datalist><br>
<label for="score">成績:</label>
<input type="number" max="100" min="0" value="0" id="scrore"><br>
<form action="">
<fieldset>
<legend>學生</legend>
<label>姓名:<input type="text" placeholder="請輸入學生名字"/></label>
<label>手機號:<input type="tel"/></label>
<label>郵箱:<input type="email"/></label>
<label>學院:<input type="text" placeholder="學院" />
embed 標簽
iframe
audio // 播放音頻
video // 播放視頻
embed
用來插入各種媒體
video
autoplay: 自動播放
controls: 是否顯示預設播放控制項
loop: 迴圈播放
width: 播放的寬度
height: 播放的高度
even 偶數
odd 奇叔
class^=add 表示以add開始位置
class$=ass 表示以ass結束位置開始
class*=aa 表示以aa為任意位置
div[class^=add]
input[type=hahaha]
E::first-letter 文本的第一個單詞或字
E::first-line 文本第一行
E::selection 可改變選中文本的樣式
p::first-letter {
}
E::before
E::after
div::befor {
content: "開始";
}
div::after {
content: "結束";
}
<style>
span:: before {
content: "dashu";
}
<style>
<body>
<span>dashu</span>
</body>
使用after
偽元素
* {
margin: 0;
padding: 0;
}
em,i {
font-style: normal;
}
li {
list-style: none;
}
img {
border: 0;
vertical-align: middle;
}
button {
cursor: pointer;
}
a {
color: red;
text-decoration: none;
}
// 清除浮動
.clearfix:after {
visibility: hidden;
clear: both;
display: block;
content: ".";
height: 0;
}
.clearfix {
*zoom: 1;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 200px;
height: 200px;
border: 1px solid red;
line-height: 30px;
}
span {
display: inline-block;
vertical-align: middle;
width: 20px;
height: 20px;
background-color: red;
/* margin-top: 10px;*/
}
</style>
</head>
<body>
<div>
<span></span> dashu
</div>
</body>
</html>
<link rel="shortcut icon" href="favicon.ico"/>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="shortcut icon" href="favicon.ico"/>
</head>
<body>
<header>
<div class="logo">
<h1>
<a href="#"></a>
</h1>
</header>
</body>
</html>
text-indent
屬性:縮進
縮進文本首行
p {
text-indent: 10px;
}
overflow
屬性:用來表示溢出時如何處理
visible 出現在框外
hidden 內容不會出現
scroll 滾動方式處理
auto自動
inherit 從父元素繼承overflow
nav li {
float: left;
height: 40px;
line-height: 40px;
margin-left: 25px;
}
nav li a {
display: block;
height: 40px;
font-size: 18px;
padding: 0 10px;
}
nav li a:hover {
border-bottom: 2px solid #00a4ff;
}
<input class="search-text" type="search" id="search" name="keyword" autocomplete="off">
input {
width: 361px;
height: 40px;
border: 1px solid #00a4ff;
outline: none;
padding-lefr: 10px;
}
// outline 元素周圍,邊框外
outline-color 邊框顏色
outline-style 邊框的樣式
outline-width 邊框的寬度
inherit 從父元素繼承outline
transition: 要過度的屬性
transition-property: 應用過渡的css屬性的名稱
transition-duration: 定義過渡效果花費的時間
transition-delay: 規定過渡效果何時開始
transition-timing-function 過渡效果的時間曲線
linear 勻速
ease 逐漸慢下來
ease-in 加速
ease-out 減速
transition-duration 花費時間 單位 s
css
樣式,外觀屬性,選擇器,顯示模式,背景屬性,三大特性,盒子模型,浮動,定位。
內部樣式表
<head>
<style type="text/css">
選擇器 {屬性一:屬性值一;}
</style>
</head>
外部樣式表
<head>
<link href="CSS文件路徑" rel="stylesheet" />
</head>
內聯樣式:
<標簽名 style="屬性1:屬性值1; "> 內容 </標簽名>
清除所有HTML
標記的預設邊距
* {
margin: 0; /* 定義外邊距*/
padding: 0; /* 定義內邊距*/
}
div {
width: 180px;
height: 120px;
border: 1px solid red;
overflow: hidden;
}
div img {
width: 180px;
height: 120px;
transition: all 0.4s;
}
div:hover img {
margin-left: -10px;
}
<div>
<img src="1.jpg" alt="">
</div>
transform
移動translate(x,y)
縮放scale(x,y)
旋轉rotate(deg)
傾斜skew(deg,deg)
font-size 字型大小大小
相對長度單位:
em 相對於當前對象內文本的字體尺寸
px 像素
絕對長度單位:
in 英寸
cm 釐米
mm 毫米
pt 點
font-family
屬性 用於設置字體
儘量使用英文:
font-family:"Microsoft Yahei"
font-weight
:字體粗細
normal、bold、bolder、lighter
400 normal
700 bold
font-style
:字體風格
normal 標準的字體樣式
italic 斜體
oblique 傾斜的字體樣式
font-style font-weight font-size/line-height font-family
color
: 文本顏色
line-height
: 行間距
text-align
: 水平對齊方式
text-indent
:首行縮進
text-decoration
文本的裝飾
none underline overline line-through
CSS
複合選擇器:交集選擇器,並集選擇器
:link /* 未訪問的鏈接 */
:visited /* 已訪問的鏈接 */
:hover /* 滑鼠移動到鏈接上 */
:active /* 選定的鏈接 */
塊級元素:block-level
每個塊級元素通常都會獨自占據一整行或多整行。
最典型的塊元素:
<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>
行內元素:inline-level
行內元素,內聯元素不占有獨立的區域
常見的行內元素:
<a>、<strong>、
<b>、<em>、<i>、
<del>、<s>、<ins>、
<u>、<span>
p
裡面不能放入塊級元素,鏈接里不能放入鏈接,a
裡面不可以放塊級元素。
行內塊元素: inline-block
<img/> <input/> <td>
標簽轉換 display
display: inline;
display: block;
display: inline-block;
css
規範:
.btn { }
font-size: 10px;
行高
行高 等於 高度 垂直居中
行高 大於 高度,文字偏下
否則,偏上
background-image :
none | url (url)
background-repeat :
repeat | no-repeat | repeat-x | repeat-y
background-position : length || length
background-position : position || position
position :
top | center | bottom | left | right
background-attachment :
scroll | fixed
background:
背景顏色 背景圖片地址 背景平鋪 背景滾動 背景位置
background: transparent url(image.jpg) repeat-y scroll 50% 0 ;
案例:
<head>
<meta charset="utf-8">
<style>
body {
background-color: #000;
}
a {
width: 100px;
height: 100px;
display: inline-block;
text-align: center;
line-height: 100px;
color: #fff;
font-size: 22px;
text-decoration: none; /* 取消下劃線 文本裝飾 */
}
a:hover {
background: url(images/1.png) no-repeat;
}
</style>
</head>
<body>
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
</body>
盒子邊框
border :
border-width || border-style || border-color
none: 沒有邊框
solid: 單實線
dashed:邊框為虛線
dotted:邊框為點線
double:邊框為雙實線
border-top: 1px solid red; /*上邊框*/
border-collapse:collapse;
表示相鄰邊框合併在一起
.btn { width: 100px; margin: 0 auto; }
text-align: center;
margin: 10px auto;
清除元素的預設內外邊距
* {
padding:0; /* 清除內邊距 */
margin:0; /* 清除外邊距 */
}
塊級元素相鄰的外邊距的合併,大的那個為準。
穩定性來分:
width > padding > margin
盒子陰影
box-shadow:
水平陰影 垂直陰影
模糊距離(虛實)
陰影尺寸(影子大小)
陰影顏色 內/外陰影;
h-shadow
v-shadow
blur
spread
color
inset
box-shadow: 5px 5px 3px 4px rgba(0, 0, 0, .4);
水平位置 垂直位置 模糊距離 陰影尺寸(影子大小) 陰影顏色 內/外陰影;
normal flow
浮動float
選擇器{float:屬性值;}
left right none
浮動,其他的元素都要浮動。
清除浮動本質
選擇器{clear:屬性值;}
left 清除左側浮動
right 清除右側浮動
both 同時清除左右兩側浮動
overflow hidden|auto|scroll
使用after
偽元素清除浮動
.clearfix:after { content: ""; display: block; height: 0; clear: both; visibility: hidden; }
.clearfix {*zoom: 1;}
.clearfix:before, .clearfix:after {
content: "",
display: table;
}
.clearfix:after {
clear: both;
}
.clearfix {
*zoom: 1;
}
切片工具,切片工具
新建基於圖層的切片,基於參考線的切片
position: absolute;
top: 10px;
left: 10px;
width: 50px;
height: 50px;
margin-left: 20px;
top bottom left right
position:
static 自動定位
relative 相對定位
absolute 絕對定位
fixed 固定定位
疊放次序:z-index
正整數、負整數和0
元素的顯示與隱藏
display
visibility
overflow
display : none
隱藏之後,不再保留位置
outline : outline-color ||outline-style || outline-width
outline: 0; 或者 outline: none;
style="outline: 0;"
防止拖拽文本域
resize:none
<textarea></textarea>
<textarea style="resize: none;"></textarea>
top line
middle line
base line
bottom line
vertical-align: baseline | top | middle | bottom
vertical-align: baseline;
vertical-align: middle;
vertical-align: top;
img { vertical-align: top; border: 0; }
.clearfix{ *zoom: 1; }
.clearfix:after { display: block; overflow: hidden; clear: both; }
text-overflow
文字溢出
text-overflow : clip | ellipsis
<li>
<a href="#">
<span>導航欄</span>
</a>
</li>
http://icomoon.io
http://www.iconfont.cn/
http://www.iconfont.cn/
http://fontello.com/
http://glyphicons.com/
http://fortawesome.github.io/Font-Awesome/
https://icons8.com/
引入ico
圖標
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
W3C 統一驗證工具
[http://validator.w3.org/unicorn](http://validator.w3.org/unicorn)/
http://tool.chinaz.com/Tools/CssFormat.aspx css 代碼壓縮
autoplay 自動播放
controls 是否顯示預設播放控制項
loop 迴圈播放
width 設置播放視窗寬度
height 設置播放視窗的高度
E::first-letter文本的第一個單詞或字
E::first-line 文本第一行
E::selection 可改變選中文本的樣式
div::befor {
content:"開始";
}
div::after {
content:"結束";
}
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
div {
width: 100px;
height: 100px;
background-color: red;
transition: all 1s; // 過渡
}
div:hover {
background-color: green;
}
</style>
</head>
<body>
<div>
</div>
</body>
</html>
transition
: 過渡的屬性, 花費時間,運動曲線,何時開始!
transition
簡寫屬性,四個過渡屬性,transition-property
應用過渡css
屬性的名稱,transition-duration
定義過渡效果花費的時間,transition-timing-function
過渡的效果,時間曲線,ease
預設值,transition-delay
規定過渡效果何時開始,預設值為0
。
所有屬性都變化過渡,為all
。
linear 勻速
ease 逐漸減慢
// 0s 何時開始 1s 花費時間
transition: all 1s ease 0s;
transform
變形:
translate(x,y)
transform: translate(100px, 100px);
scale(x,y)
縮放
rotate(45deg)
旋轉
transform-origin
可以設置元素的轉換變形的原點
// transform-origin: 10px 10px;
div { transform-origin: left top; transform: rotate(45deg); }
skew(deg,deg)
傾斜
.book dt {
height: 50px;
background-color: red;
font-weight: 300;
color: yellow;
line-height: 50px;
font-size: 20px;
text-align: center;
}
.book dd {
padding: 15px 20px 0;
}
.book dd li {
height: 60px;
border-bottom: 1px solid #ccc;
background-color: pink;
padding-top: 5px;
}
.book h5 {
font-size: 15px;
font-weight: normal;
}
地址:
https://pan.baidu.com/s/1vye5PeNeEp_RPcVhAez4lQ
定位:
position z-index top right bottom left clip
佈局:
display float clear visibility overflow overflow-x overflow-y
margin margin-top margin-right margin-bottom margin-left
邊框:
border
border-width border-style border-color
border-top
border-top-width border-top-style border-top-color
border-right
border-right-width border-right-style border-right-color
border-bottom
border-bottom-width border-bottom-style border-bottom-color
border-left
border-left-width border-left-style border-left-color
border-radius
border-top-left-radius border-top-right-radius border-bottom-right-radius border-bottom-left-radius
box-shadow
border-image
border-image-source border-image-slice border-image-width border-image-outset border-image-repeat
背景:
background
background-color background-image background-repeat background-attachment background-position background-origin background-clip background-size
字體:
font font-style font-variant font-weight font-size font-family font-stretch font-size-adjust
文本text
text-transform white-space tab-size word-break word-wrap overflow-wrap text-align text-align-last text-justify word-spacing letter-spacing text-indent vertical-align line-height text-size-adjust
css:
// 文本
text-decoration text-decoration-line text-decoration-color text-decoration-style text-decoration-skip text-underline-position text-shadow
direction unicode-bidi writing-mode
// 列表
list-style list-style-image list-style-position list-style-type
// 表格
table-layout border-collapse border-spacing caption-side empty-cells
// 內容
cotent counter-increment counter-reset quotes
// 界面
appearance text-overflow outline outline-width
outline-style outline-color outline-offset nav-index
nav-up nav-right nav-down nav-left
cursor zoom box-sizing resize ime-mode
user-select pointer-events
// 盒子
box-orient box-pack box-align box-flex
box-flex-group box-ordinal-group box-direction box-lines
// 列印Printing
page page-break-before page-break-after page-break-inside
// 媒體查詢:
width height device-width device-height orientation aspect-ratio device-aspect-ratio color
color-index monochrome resolution scan grid
案例:
// 小圓點
<div class="circle">
<i class="current"></i>
<i></i>
<i></i>
<i></i>
<i></i>
</div>
<!-- nav部分 -->
<nav>
<ul>
<li><a href="#">首頁</a></li>
<li><a href="#">首頁</a></li>
</ul>
</nav>
過渡:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 100px;
height: 100px;
background-color: pink;
transition: all 0.5s;
}
div:hover {
width: 500px;
height: 200px;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
圖片效果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 185px;
height: 130px;
border: 1px solid red;
overflow: hidden;
}
div img {
width: 195px;
height: 130px;
transition: all 0.4s;
}
div:hover img {
margin-left: -10px;
}
</style>
</head>
<body>
<div>
<img src="1.jpg" alt="">
</div>
</body>
</html>
側邊欄:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
* {
margin: 0;
padding: 0;
}
li {
list-style: none;
}
.subnav {
margin: 100px auto;
width: 20px;
}
.subnav li {
width: 20px;
height: 20px;
margin: 3px 0;
background-color: pink;
position: relative;
}
.subnav div {
position: absolute;
right: 0;
top: 0;
height: 20px;
width: 0;
background-color: purple;
transition: all 0.6s;
z-index: -1;
}
.subnav li:hover div {
width: 100px;
}
</style>
</head>
<body>
<div class="subnav">
<ul>
<li>
<div></div>
</li>
<li><div></div></li>
<li><div></div></li>
<li><div></div></li>
<li><div></div></li>
</ul>
</div>
</body>
</html>
位移:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
transition: all 0.4s;
}
div:hover {
transform: translate(100px, 100px);
}
</style>
</head>
<body>
<div></div>
</body>
</html>
盒子居中:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
position: absolute;
width: 200px;
height: 200px;
background-color: pink;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
</style>
</head>
<body>
<div></div>
</body>
</html>
圖片放大:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 386px;
height: 260px;
overflow: hidden;
}
div img {
transition: all 0.5s;
}
div:hover img {
transform: scale(1.1);
}
</style>
</head>
<body>
<div>
<img src="1.jpg" height="260" width="386" alt="">
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
}
div:hover {
transform: scale(0.8);
}
</style>
</head>
<body>
<div>
</div>
</body>
</html>
旋轉:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
margin: 100px auto;
transition: all 0.6s;
transform-origin: right bottom;
}
div:hover {
transform: rotate(360deg);
}
</style>
</head>
<body>
<div>123</div>
</body>
</html>
風車:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
margin: 100px auto;
transition: all 0.6s;
}
img {
transition: all 0.6s;
}
img:hover {
transform: rotate(360deg);
}
</style>
</head>
<body>
<img src="images/fengche.png" height="585" width="585" alt="">
</body>
</html>
過渡:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 100px;
height: 100px;
background-color: red;
transition: all 2s;
}
div:hover {
background-color: blue;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
// skew 傾斜
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
transform: skew(30deg);
}
</style>
</head>
<body>
<div></div>
</body>
</html>
顯示陰影
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 150px;
height: 150px;
border: 1px solid #ccc;
transition: all 0.6s;
}
div:hover {
box-shadow: 0 10px 20px rgba(0,0,0,0.5);
transform: translateY(-20px);
}
</style>
</head>
<body>
<div></div>
</body>
</html>
圖片旋轉:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 250px;
height: 170px;
border: 1px solid red;
margin: 150px auto;
position: relative;
}
div img {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
transition: all 0.6s;
transform-origin: top right;
}
div:hover img:first-child {
transform: rotate(60deg);
}
div:hover img:nth-child(2) {
transform: rotate(120deg);
}
div:hover img:nth-child(3) {
transform: rotate(180deg);
}
div:hover img:nth-child(4) {
transform: rotate(240deg);
}
div:hover img:nth-child(5) {
transform: rotate(300deg);
}
div:hover img:nth-child(6) {
transform: rotate(360deg);
}
</style>
</head>
<body>
<div>
<img src="images/2.jpg" alt="">
<img src="images/3.jpg" alt="">
<img src="images/4.jpg" alt="">
<img src="images/5.jpg" alt="">
<img src="images/6.jpg" alt="">
<img src="images/1.jpg" >
</div>
</body>
</html>
結言
好了,歡迎在留言區留言,與大家分享你的經驗和心得。
感謝你學習今天的內容,如果你覺得這篇文章對你有幫助的話,也歡迎把它分享給更多的朋友,感謝。
作者簡介
達叔,理工男,簡書作者&全棧工程師,感性理性兼備的寫作者,個人獨立開發者,我相信你也可以!閱讀他的文章,會上癮!,幫你成為更好的自己。長按下方二維碼可關註,歡迎分享,置頂尤佳。