1. 功能强大 2. 将内容展示和样式控制分离,降低耦合度,解耦。 3. 可以让分工协作更容易,提高开发效率。
<div style = "color:red;">Hello,CSS</div>
将使得div元素中的文字变红。// 在body标签内有一个p标签 <p>HelloWorld</p> // 在head标签下定义CSS代码将其颜色设置为蓝色 <style> p { color:blue; } </style>
1. 定义一个CSS资源文件test.css div { color:green; } 2. 在head标签内定义link标签将其引入或者通过style标签导入 <!--href属性指定样式表的路径--> <link rel="stylesheet" href="test.css"></link> 或者 <style> @import "test.css" </style> 3. body标签中的div标签中的内容的样式就会生效 <div>Hello,CSS</div>
注意:
选择器 { 属性名1:属性值1; 属性名2:属性值2; ... ... } 选择器:筛选具有相似特征的元素 注意:每一对属性需要使用分号隔开,最后一对属性可以不加
语法: #id属性值 { } // 在head标签下定义一个id选择器 <style> #black { color: black; font-size: 100px; } </style> //body标签中的div标签 <div id="black">id选择器示例</div>
语法: 标签名称 { } <style> h1 { color:red; font-size: 20px; } </style> <h1>一级标题</h1>
注意:id选择器优先级高于元素选择器
3. 类选择器:选择具有相同class属性值的一组元素。(class属性可以为元素分组,它和id属性不同,class属性可以在多个元素中重复使用而且可以为一个元素指定多个class属性)
语法: .class属性值 { } .red { color: red; } .size { font-size: 30px; } <p class="red size">你在吗?</p> <p class="red">我在!</p> <p class="red size">玩游戏吗?</p>
注意:类选择器优先级高于元素选择器
语法: * { }
选择器1,选择器2 { }
祖先 后代 { } // 该选择器作用在div内的所有span元素 div span{ color: skyblue } <div class="box"> 我是一个div <p> 我是div中的p元素 <span>我是p元素中的span</span> </p> <div></div> <span>我是div中的span元素</span> <span>我是div中的span元素</span> <span>我是div中的span元素</span> <span>我是div中的span元素</span> </div>
父元素 > 子元素 { } // 该选择器只作用在div内的所有子span元素 div.box > span{ color: orange; } <div class="box"> 我是一个div <p> 我是div中的p元素 <span>我是p元素中的span</span> </p> <div></div> <span>我是div中的span元素</span> <span>我是div中的span元素</span> <span>我是div中的span元素</span> <span>我是div中的span元素</span> </div>
语法: 元素名称[属性名= "属性值"] { } [属性名] 选择含有指定属性的元素 [属性名=属性值] 选择含有指定属性和属性值的元素 [属性名^=属性值] 选择属性值以指定值开头的元素 [属性名$=属性值] 选择属性值以指定值结尾的元素 [属性名*=属性值] 选择属性值中含有某值的元素的元素 // head标签中的style标签定义: <style> input[type = "text"] { border: 10px solid; } </style> <body> 属性选择器示例:<input type = "text"/> </body>
// n的特殊值: n 第n个 n的范围0到正无穷 2n 或 even 表示选中偶数位的元素 2n+1 或odd 表示选中奇数位的元素 -n + 2表示前两个
语法: 元素:状态 { } <head> <style> /* ul > li:first-child{ color: red; } ul > li:first-of-type{ color: red; } ul > li:nth-child(2n+1){ color: red; } */ ul > li:not(:nth-of-type(3)){ color: yellowgreen; } </style> </head> <body> <ul> <span>我是一个span</span> <li>第〇个</li> <li>第一个</li> <li>第二个</li> <li>第三个</li> <li>第四个</li> <li>第五个</li> </ul> </body> 比如a标签有Link,visited,active,hover等状态
<style> /* :link 用来表示没访问过的链接(正常的链接) */ a:link{ color: red; } /* :visited 用来表示访问过的链接 由于隐私的原因,所以visited这个伪类只能修改链接的颜色 */ a:visited{ color: orange; /* font-size: 50px; */ } /* :hover 用来表示鼠标移入的状态 */ a:hover{ color: aqua; font-size: 50px; } /* :active 用来表示鼠标点击 */ a:active{ color: yellowgreen; } </style> <a href="https://www.baidu.com">访问过的链接</a> <br><br> <a href="https://www.baidu123.com">没访问过的链接</a>
选择器1选择器2选择器3选择器n{ } // 示例 div.red { color:red; } <div class="red"></div>
<style> p{ font-size: 20px; } p::first-letter{ font-size: 100px; } p::first-line{ background-color: red; } p::selection{ background-color: yellow; } /*在div元素内的最开头添加『*/ div::before{ content: '『'; color:red } div::after{ content: '』'; color:yellow } </style> <!-- <q>hello</q> --> <div>Hello Hello How are you</div> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Atque velit modi veniam nisi veritatis tempore laborum nemo ipsa itaque optio. Id odit consequatur mollitia excepturi, minus saepe nostrum vel porro. </p>
/*选择p的下一个兄弟元素span*/ p + span { color:red; }
/*选择p的后面所有的兄弟元素span*/ p ~ span { color:red; }
当我们通过不同的选择器,选中相同的元素,并且为相同的样式设置不同的值时,此时就发生了样式的冲突。发生样式冲突时,应用哪个样式由选择器的权重(优先级)决定
从高到低: 1. 内联样式 2. id选择器 3. 类和伪类选择器 4. 元素选择器 5. 通配选择器 6. 继承的样式(没有优先级) 比较优先级时,需要将所有的选择器的优先级进行相加计算, 最后优先级越高,则越优先显示(分组选择器单独计算) 可以在某一个样式的后边添加!important, 则此时该样式会获取到最高的优先级,甚至超过内联样式 <!--以下样式优先级最高,背景将为紫色 --> .d1{ background-color: purple !important; }
//给p标签中的内容设置样式 p { color:#FF0000; font-size: 30px; text-align: center; line-height: 100px; }
background:一个复合属性,可以设置背景颜色,图片等
样式的继承:为一个元素设置的样式同时也会应用到它的后代元素上。继承是发生在祖先元素和后代元素之间的 继承的设计是为了方便我们的开发,利用继承我们可以将一些通用的样式统一设置到共同的祖先元素上,这样只需设置一次即可让所有的元素都具有该样式。并不是所有的样式都会被继承:比如背景相关的,布局相关等的这些样式都不会被继承。
<style> p{ color: red; background-color: orange; } div{ color: yellowgreen } body{ font-size: 30px; } </style> <p> 我是一个p元素<br/> <span>我是p元素中的span</span> </p> <span>我是p元素外的span</span> <div> 我是div <span> 我是div中的span <em>我是span中的em</em> </span> </div>
<style> /* 根元素选择器 */ html{ font-size: 10px; } .box1{ width:300px; height: 300px; background-color: orange; } .box2{ width: 50%; height: 50%; background-color:aqua; } .box3{ font-size: 50px; width: 6em; height: 6em; /* width: 10rem; height: 10rem; */ background-color: greenyellow; } </style> <div class="box1"> <div class="box2"></div> </div> <div class="box3"></div>
参考盒子模型
CSS将页面中的所有元素都设置为了一个矩形的盒子。每一个盒子都由一下几个部分组成:
border:solid 10px orange;
<style> .box1{ width: 200px; height: 200px; background-color: #bfa; color: red; border-color: orange red yellow green; /* border-color: orange; */ border-style: solid dotted dashed double; border-style: solid; border-width: 10px; border: solid 10px orange; /* border-top: 10px solid red; border-left: 10px solid red; border-bottom: 10px solid red; */ /* border: 10px red solid; border-right: none; */ } </style> <div class="box1"></div>
padding: 10px 20px 30px 40px;
<style> .box1{ /* 内容区:200 * 200 */ width: 200px; height: 200px; background-color: #bfa; border: 10px orange solid; padding-top: 100px; padding-left: 100px; padding-right: 100px; padding-bottom: 100px; /* padding: 10px 20px 30px 40px; padding: 10px 20px 30px ; padding: 10px 20px ; padding: 10px ; */ } /* 子元素将内容区撑满 */ .inner{ width: 100%; height: 100%; background-color: yellow; } </style> <div class="box1"> <div class="inner"></div> </div>
外边距不会影响盒子可见框的大小,但是外边距会影响盒子的位置,会影响到盒子实际占用空间。
示例:margin: 100px;
<style> .box1{ width: 200px; height: 200px; background-color: #bfa; border: 10px red solid; /* margin-right: 0px; */ margin: 100px; } .box2{ width: 220px; height: 220px; background-color: yellow } </style> <div class="box1"></div> <div class="box2"></div>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .outer{ width: 800px; height: 200px; border: 10px red solid; } .inner{ /* width: auto; width的值默认就是auto*/ width: 200px; height: 200px; background-color: #bfa; margin-right: auto; margin-left: auto; /* margin-left: 100px; margin-right: 400px */ /* 元素的水平方向的布局: 元素在其父元素中水平方向的位置由以下几个属性共同决定 margin-left border-left padding-left width padding-right border-right margin-right 一个元素在其父元素中,水平布局必须要满足以下的等式 margin-left+border-left+padding-left+width+padding-right+border-right+margin-right = 其父元素内容区的宽度 (必须满足) 0 + 0 + 0 + 200 + 0 + 0 + 0 != 800 0 + 0 + 0 + 200 + 0 + 0 + 600 = 800 100 + 0 + 0 + 200 + 0 + 0 + 400 = 800 100 + 0 + 0 + 200 + 0 + 0 + 500 = 800 - 以上等式必须满足,如果相加结果使等式不成立,则称为过度约束,则等式浏览器会自动调整 - 调整的情况: - 如果这七个值中没有为 auto 的情况,则浏览器会自动调整margin-right值以使等式满足 - 这七个值中有三个值可以设置为auto width margin-left maring-right - 如果某个值为auto,则会自动调整为auto的那个值以使等式成立 0 + 0 + 0 + auto + 0 + 0 + 0 = 800 auto = 800 0 + 0 + 0 + auto + 0 + 0 + 200 = 800 auto = 600 200 + 0 + 0 + auto + 0 + 0 + 200 = 800 auto = 400 auto + 0 + 0 + 200 + 0 + 0 + 200 = 800 auto = 400 auto + 0 + 0 + 200 + 0 + 0 + auto = 800 auto = 300 - 如果将一个宽度和一个外边距设置为auto,则宽度会调整到最大,设置为auto的外边距会自动为0 - 如果将三个值都设置为auto,则外边距都是0,宽度最大 - 如果将两个外边距设置为auto,宽度固定值,则会将外边距设置为相同的值 所以我们经常利用这个特点来使一个元素在其父元素中水平居中 示例: /* 元素在父元素中水平居中 */ width:xxxpx; /*上下为0*/ margin:0 auto; } </style> </head> <body> <div class="outer"> <div class="inner"></div> </div> </body> </html>
<style> .outer{ background-color: #bfa; height: 600px; /* 默认情况下父元素的高度被内容撑开 */ } .inner{ width: 100px; background-color: yellow; height: 100px; margin-bottom: 100px; } .box1{ width: 200px; height: 200px; background-color: #bfa; /* 子元素是在父元素的内容区中排列的, 如果子元素的大小超过了父元素,则子元素会从父元素中溢出 使用 overflow 属性来设置父元素如何处理溢出的子元素 可选值: visible,默认值 子元素会从父元素中溢出,在父元素外部的位置显示 hidden 溢出内容将会被裁剪不会显示,内容只显示在其容器元素的显示区域里 scroll 生成两个滚动条,通过滚动条来查看完整的内容 auto 根据需要生成水平或者垂直滚动条 属性overflow-x: 单独处理水平方向的溢出 属性overflow-y:单独处理垂直方向的溢出 */ overflow: auto; } </style> <!-- <div class="outer"> <div class="inner"></div> <div class="inner"></div> </div> --> <div class="box1"> 在我的后园,可以看见墙外有两株树,一株是枣树,还有一株也是枣树。 这上面的夜的天空,奇怪而高,我生平没有见过这样奇怪而高的天空。他仿佛要离开人间而去,使人们仰面不再看见。然而现在却非常之蓝,闪闪地䀹着几十个星星的眼,冷眼。他的口角上现出微笑,似乎自以为大有深意,而将繁霜洒在我的园里的野花草上。 我不知道那些花草真叫什么名字,人们叫他们什么名字。我记得有一种开过极细小的粉红花,现在还开着,但是更极细小了,她在冷的夜气中,瑟缩地做梦,梦见春的到来,梦见秋的到来,梦见瘦的诗人将眼泪擦在她最末的花瓣上,告诉她秋虽然来,冬虽然来,而此后接着还是春,蝴蝶乱飞,蜜蜂都唱起春词来了。她于是一笑,虽然颜色冻得红惨惨地,仍然瑟缩着。 枣树,他们简直落尽了叶子。先前,还有一两个孩子来打他们,别人打剩的枣子,现在是一个也不剩了,连叶子也落尽了。他知道小粉红花的梦,秋后要有春;他也知道落叶的梦,春后还是秋。他简直落尽叶子,单剩干子,然而脱了当初满树是果实和叶子时候的弧形,欠伸得很舒服。但是,有几枝还低亚着,护定他从打枣的竿梢所得的皮伤,而最直最长的几枝,却已默默地铁似的直刺着奇怪而高的天空,使天空闪闪地鬼䀹眼;直刺着天空中圆满的月亮,使月亮窘得发白。 鬼䀹眼的天空越加非常之蓝,不安了,仿佛想离去人间,避开枣树,只将月亮剩下。然而月亮也暗暗地躲到东边去了。而一无所有的干子,却仍然默默地铁似的直刺着奇怪而高的天空,一意要制他的死命,不管他各式各样地䀹着许多蛊惑的眼睛。 哇的一声,夜游的恶鸟飞过了。 我忽而听到夜半的笑声,吃吃地,似乎不愿意惊动睡着的人,然而四围的空气都应和着笑。夜半,没有别的人,我即刻听出这声音就在我嘴里,我也即刻被这笑声所驱逐,回进自己的房。灯火的带子也即刻被我旋高了。 后窗的玻璃上丁丁地响,还有许多小飞虫乱撞。不多久,几个进来了,许是从窗纸的破孔进来的。他们一进来,又在玻璃的灯罩上撞得丁丁地响。一个从上面撞进去了,他于是遇到火,而且我以为这火是真的。两三个却休息在灯的纸罩上喘气。那罩是昨晚新换的罩,雪白的纸,折出波浪纹的叠痕,一角还画出一枝猩红色的栀子。 猩红的栀子开花时,枣树又要做小粉红花的梦,青葱地弯成弧形了……我又听到夜半的笑声;我赶紧砍断我的心绪,看那老在白纸罩上的小青虫,头大尾小,向日葵子似的,只有半粒小麦那么大,遍身的颜色苍翠得可爱,可怜。 我打一个呵欠,点起一支纸烟,喷出烟来,对着灯默默地敬奠这些苍翠精致的英雄们。 一九二四年九月十五日。 </div>
<style> .s1{ background-color: yellow; width: 100px; height: 100px; padding: 2px; /* border: 100px solid red; */ margin: 100px; } .box1{ width: 200px; height: 200px; background-color: #bfa; } a{ display: block; /* visibility: hidden; */ width: 100px; height: 100px; background-color: orange; } </style> <a href="javascript:;">超链接</a> <a href="javascript:;">超链接</a> <span class="s1">我是span</span> <span class="s1">我是span</span> <div class="box1"></div>
<style> /* 去除body元素的外边距 */ /* body{ margin: 0; } /* 去除p元素的外边距 */ p{ margin: 0; } /* 去除外边距和padding */ ul{ margin: 0; padding: 0; /* 去除项目符号小黑点*/ list-style:none; } .box1{ width: 100px; height: 100px; border: 1px solid black; } <!--统配选择器去除所有元素的默认样式--> *{ margin: 0; padding: 0; } </style> <div class="box1"></div> <p>我是一个段落</p> <p>我是一个段落</p> <p>我是一个段落</p> <ul> <li>列表项1</li> <li>列表项2</li> <li>列表项3</li> </ul>
默认情况下,盒子可见框的大小由内容区、内边距和边框共同决定。
<style> .box1{ width: 100px; height: 100px; background-color: #bfa; padding: 10px; border: 10px red solid; /* box-sizing: border-box; */ box-sizing: content-box; } </style> <div class="box1"></div>
<style> .box1:hover{ outline: 10px red solid; } </style> <div class="box1"></div> <span>Hello</span>
<style> .box1{ width: 200px; height: 200px; background-color: #bfa; box-shadow: 0px 0px 50px rgba(0, 0, 0, .3) ; } <style> <div class="box1"></div>
<style> .box2{ width: 200px; height: 200px; background-color: orange; /* 将元素设置为一个圆形 */ /* border-radius: 50%; */ border-radius: 10px; } </style> <div class="box2"></div>
注意,元素设置浮动以后,水平布局的等式便不需要强制成立 元素设置浮动以后,会完全从文档流中脱离,不再占用文档流的位置, 所以元素下边的还在文档流中的元素会自动向上移动
<style> header, main, footer{ width: 1000px; margin: 0 auto; } /* 设置头部 */ header{ height: 150px; background-color: silver; } /* 设置主体 */ main{ height: 500px; background-color: #bfa; margin: 10px auto; } nav, article, aside{ float: left; height: 100%; } /* 设置左侧的导航 */ nav{ width: 200px; background-color: yellow; } /* 设置中间的内容 */ article{ width: 580px; background-color: orange; margin: 0 10px; } /* 设置右侧的内容 */ aside{ width: 200px; background-color: pink; } /* 设置底部 */ footer{ height: 150px; background-color: tomato; } </style> <!-- 创建头部 --> <header></header> <!-- 创建网页的主体 --> <main> <!-- 左侧导航 --> <nav></nav> <!-- 中间的内容 --> <article></article> <!-- 右边的边栏 --> <aside></aside> </main> <!-- 网页的底部 --> <footer></footer>
子绝父相
<style> .box1 { width: 100px; height: 100px; background-color: red; } .box2 { width: 100px; height: 100px; background-color: green; position: relative; left: 100px; top: -100px; } .box3 { width: 100px; height: 100px; background-color: blue; } </style> <!-- 相对定位不会脱离文档流,不会改变元素的性质,块还是块 --> <div class="box1">1</div> <div class="box2">2</div> <div class="box3">3</div>
包含块:在正常情况下,包含块就是离当前元素最近的祖先块元素。 在开启绝对定位以后,包含块就是离当前元素最近的开启了定位的祖先元素。 如果所有的祖先元素都没有开启定位,则根元素html就是它的包含块
<style> .box1 { width: 200px; height: 200px; background-color: red; } .box2 { width: 100px; height: 100px; background-color: green; position: relative; } .box3 { width: 50px; height: 50px; background-color: blue; position: absolute; top: 0; } </style> <!-- 绝对定位元素是相对于其包含块进行定位的,包含块就是离他最近的开启了定位的祖先元素 --> <!-- 只要position属性的值不是static就开启了定位 --> <div class="box1"> 1 <div class="box2"> 2 <div class="box3"> 3</div> </div> </div>
<style> body { height: 1080px; } .box1 { width: 200px; height: 200px; background-color: red; } .box2 { width: 100px; height: 100px; background-color: green; position: relative; } .box3 { width: 50px; height: 50px; background-color: blue; position: fixed; top: 0; left: 0; } </style> <!-- 固定定位参照于浏览器的视口(浏览器的可视窗口)进行定位 --> <div class="box1"> 1 <div class="box2"> 2 <div class="box3"> 3</div> </div> </div>
<style> body { width: 100%; height: 100%; background-color: pink; /* 开启相对定位 */ position: relative; top: 0px; left: 0px; margin: 0 4px; } header { width: 100%; height: 150px; background-color: royalblue; position: absolute; top: 0px; } aside { width: 200px; height: 500px; background-color: red; position: absolute; top: 150px; } section { width: 100%; height: 500px; background-color: springgreen; position: absolute; top: 150px; left: 200px; } footer { width: 100%; height: 100px; position: absolute; top: 650px; background-color: steelblue; } </style> <!-- 网页头部 --> <header>头部</header> <!-- 网页侧边栏 --> <aside>侧边</aside> <!-- 网页主体 --> <section>主体</section> <!-- 网页页脚 --> <footer>页脚</footer>
<style> /* 祖先元素的层级再高,盖不住子元素 */ .box3 { background-color: green; width: 100px; height: 100px; z-index: 3; position: absolute; } .box4 { background-color: brown; width: 50px; height: 50px; } </style> <div class="box3"> 3<div class="box4">4</div> </div>
@font-face { /*指定字体的名称*/ font-family:'xxx'; /*服务器中字体相关文件的路径*/ src:url('xxx') }
<link rel="stylesheet" href="../fa/css/all.css"></link>
<i class="fas 图标字体类名"></i> <!--可能如下形式,以fab开头--> <i class="fab 图标字体类名"></i>
div { font-size: 50px; /* 设置行高为字体的大小 */ /* line-height:1 */ /* 使单行文字在一个元素div中垂直居中 */ line-height: 200px; height: 200px; border: 1px red solid; } <div>test</div>
语法: font:字体大小/行高 字体族 行高可以省略不写,不写则使用默认值
background-image: url("./img/xxx.png")
background-position:水平方向的偏移量 垂直方向的偏移量
/*位置在元素的正中间*/ background-position:center center;
<!--示例:a标签link、hover、active的状态,缺点是a标签被激活时和悬浮时 向服务器发送两次请求,发送请求会出现图片闪烁的问题--> <style> /* 设置a标签在未访问前的样式 */ a:link { display: block; width: 93px; height: 29px; background-image: url("images/link.png"); } /*设置a标签被激活的样式*/ a:active { background-image: url("images/active.png"); } /*设置a标签悬浮的样式*/ a:hover { background-image: url("images/hover.png"); } </style> <body> <a href="javascript:;"></a> </body>
<style> /* 设置a标签在未访问前的样式 */ a:link { display: block; width: 93px; height: 29px; background-image: url("images/btn.png"); } a:active { background-position: -186px 0; } a:hover { /* 水平方向向左移动93px */ background-position: -93px 0; } </style> <body> <a href="javascript:;"></a> </body>
linear-gradient(渐变的方向,颜色,颜色,...) 渐变的方向有:to left:从右往左 to right:从左往右 to bottom:从上到下 to top:从下往上 deg:指定度数 turn:指定圈数 渐变的颜色:渐变可以指定多个颜色,多个颜色默认情况下平均分布
// 语法: radial-gradient(大小 at 位置, 颜色 位置,颜色 位置) 大小: 1. circle:圆形 2. ellipse:椭圆 3. closet-side:近边 4. closet-Corder:近角 5. farthest-side:远边 6. farthest-Corder:远角 位置:center、top、bottom等
<style> .box1 { width: 200px; height: 200px; background-image: radial-gradient(blue, red); } .box2 { width: 300px; height: 300px; /* 手动指定径向渐变的大小 */ background-image: radial-gradient(100px 100px, green, yellow); } </style> <body> <div class="box1"></div> <div class="box2">1</div> </body>
<!--多个属性使用逗号分隔,如果所有属性需要过渡, 则使用all关键字--> transition-property: width, height
<!--单位秒和毫秒--> transition-duration: 2s
<style> .box { width: 132px; height: 271px; background-image: url("images/bigtap-mitu-queue-big.png"); margin: 0 auto; background-position: 0 0; transition: background-position, 0.3s steps(3); } .box:hover { background-position: -396px 0; } </style> <div class="box"> </div>
<style> .box1 { width: 1080px; height: 100px; background-color: bisque; } .box2 { width: 100px; height: 100px; background-color: chartreuse; /* animation-name: test; */ /* 动画的执行时间 */ /* animation-duration: 4s; */ /* 动画的执行次数 */ /* animation-iteration-count: 2; */ /* 简写属性 */ animation: test 4s 2; } /* 关键帧 */ @keyframes test { /* 动画开始的位置 */ from { margin-left: 0px; } to { margin-left: 1080px; } } </style> <div class="box1"> <div class="box2"></div> </div>
<!--设置网页的视距示例--> html { /*设置当前网页的视距为800px,人眼距离网页的距离*/ perspective:800px }
<!--例如--> /*表示沿着x轴方向平移100px*/ transform:translateX(100); /*百分比是相对自身计算的*/ transform:translateX(50%) <!--利用平移实现一个元素在另一个初始包含块元素中水平垂直都居中--> <style> .box { background-color: aqua; position: absolute; left: 50%; transform: translateX(-50%) translateY(-50%); top: 50%; } </style> <div class="box"> 测试居中效果 </div>
<style> body { background-color: silver; } .box1, .box2 { width: 220px; height: 300px; background-color: #fff; float: left; margin: 0 10px; /* 过渡的效果 */ transition: all .3s; } .box1:hover, .box2:hover { transform: translateY(-5px); /* 加上阴影的效果 */ box-shadow: 0 0 10px rgba(0, 0, 0, .3); } </style> <div class="box1"></div> <div class="box2"></div>
transform-origin:x-axis y-axis z-axis;
<!--不同的设备完美视口大小不一样,例如iPhone6的为375px--> <!--将网页的视口设置为完美视口即device-width--> <meta name="viewport" content="width=device-width, initial-scale=1.0">
@media 查询规则{ }
<!--视口宽度为500的时候样式生效--> @media (width:500px) { body { background-color:#bfa; } }
@media (min-width:500px) { body { background-color:#bfa; } }
小于768 超小屏幕 max-width=768px 大于768 小屏幕 min-width=768px 大于992 中型屏幕min-width=992px 大于1200 大屏幕 min-width=1200px <!--大于500px并且小于700px样式才生效--> @media only screen and(min-width:500px) and (max-width:700px) { body { background-color:#bfa; } }