CSS的引入方式:
内嵌式引入:在标签内直接使用style属性,每个样式使用分号隔开。
1 <div style="color: red;font-size:25px ; 2 font-family: 'Microsoft Yahei';line-height: 50px"> 3 窗前明月光,<br /> 4 疑是地上霜。<br /> 5 举头望明月,<br /> 6 低头思故乡。<br /> 7 </div>
外联式引入:使用link标签引入本地css样式文件。
1 <link rel="stylesheet" type="text/css" href="main.css">
CSS选择器:
标签选择器:当前html下的所有div样式都是被设置成这样。
div{ color: red; }
id选择器:只能选择一个标签的一个id,但权重要比类选择器大。
#div2{ color: green; }
<div id="div2">遥看瀑布挂前川。</div>
类选择器:可选择多个标签,拓展性高。
.gold{ color: gold; }
<div class="gold">飞流直下三千尺,</div>
层级选择器:即在class类选择器下空格加个标签,从而实现只修改某个类下的某个标签下的内容。
.list li{ height: 30px; }
<div class="list">遥看瀑布挂前川。</div>
CSS元素层级:
同层级哪个先写先显示哪个,使用z-index打破层级限制,数值越大,越优先显示。
1 body .box2{ 2 background-color: green; 3 left: 50px; 4 top: 50px; 5 z-index: 2 6 }
CSS元素特点:
行内元素的特点:
不支持宽高、margin的上下、padding的上下;
宽高由文字决定,即使设置了宽度,盒子也会占据一整行;
代码换行,盒子间会产生间距。
解决间距:将父级元素设置为font-size:0 行内元素自身再设置相应的font-size;
1 .con1,.con2{ 2 width: 500px; 3 height: 80px; 4 border: 1px solid #333; 5 margin: 50px auto 0; 6 font-size: 0;//关键在这行 7 } 8 .con1 a{ 9 background: gold; 10 text-decoration: none; 11 width: 20px; 12 height: 40px; 13 padding:0px 20px; 14 font-size: 20px; 15 }
1 <body> 2 <div class="con2"> 3 <a href="#">锄禾日当午,</a> 4 <a href="#">汗滴禾下土。</a> 5 </div> 6 </body>
显然行内元素没有按照高40px,宽20px进行渲染。
块元素、行内元素、行内块元素的关系:
块元素宽、高均能设置,
行内元素无法设置其宽和高,宽高随标签里的内容变化,
行内块元素实际就是把块元素以行的形式展现出来,保留了块元素可以设置的对应的属性。
CSS定位:
使用position属性进行定位。
1 .box{ 2 width: 450px; 3 height: 300px; 4 border: 1px solid #000; 5 margin: 100 auto 0; 6 position: relative;/*相对于body绝对定位*/ 7 } 8 .box div{/*相对于box相对定位*/ 9 width: 200px; 10 height: 100px; 11 margin: 20px; 12 background: blue; 13 line-height: 100px;/*文字操作*/ 14 text-align: center;/*文字操作*/ 15 font-size: 40;/*文字操作*/ 16 } 17 body .box1{ 18 position: absolute; 19 /*相对定位relative其他东西不变,盒子相对自身位置发生偏移*/ 20 /*绝对定位absolute根根据父级位置定位来定位,父级一般设置为相对定位, 21 若父级及祖父级..无定位,则根据body定位*/ 22 /*定位后转换成行内块元素,靠内容撑开宽度*/ 23 left: 50px; 24 top: 50px; 25 background-color: gold; 26 } 27 body .guding{ 28 position:fixed; 29 left: 0; 30 top:0; 31 background: pink; 32 } 33 .box2{ 34 background-color: pink; 35 position: absolute;/*定位后转换成行内块元素,靠内容撑开宽度*/ 36 left: 100px; 37 top: 100px; 38 }
1 <div class="box"> 2 <div class="box1">111</div> 3 <div>222</div> 4 <div>333</div> 5 <div class="guding">444</div> 6 </div>
css文本常用样式:
font同时设置文字的几个属性,写的顺序有兼容性问题,建议按照如下顺序写:font:是否加粗 字号/行高 字体 如:font:normal 12px/36px '微软雅黑';
a标签设置的网页链接,如果是网络网页连接,必须加http://
text-decoration去a标签的下划线
p标签加hover,鼠标移至目标内容,目标变色。 p:hover{ }
除了字体的设置和文本的倾斜设置,其他属性值都不加引号。
针对中文版式,text-indent设置文字首行缩进
text-align不能给em标签对齐,可以给h标签对齐。因为他们的宽度不同(详细看块元素和内联元素及内联块元素的区别)。
新闻列表案例:
1 .new_list_con{ 2 width: 600px; 3 height: 290px; 4 border: 1px solid #ddd; 5 margin: 50px auto 0; 6 overflow: hidden;/*消除溢出的li面积*/ 7 } 8 .new_list_con h3{ 9 width: 560px; 10 height: 50px; 11 border-bottom: 1px solid #ddd; 12 margin: 0px auto; 13 } 14 .new_list_con h3 span{/*注意是H3下的span,s设置那条下划线。将其行内元素转化为行内块元素*/ 15 display: inline-block;/*转为行内块元素*/ 16 height: 50px; /*高与h3等高*/ 17 border-bottom: 2px solid red; 18 font: 18px/50px 'Microsoft Yahei';/*行高50居中,18宽度,雅黑字体*/ 19 color:#000; 20 padding: 0 15px;/*上下不设,左右设置15px*/ 21 position: relative;/*保持原来的位置但它是跳出来的*/ 22 23 } 24 .new_list_con ul{ 25 list-style: none;/*去点*/ 26 padding: 0;/*紧凑一点*/ 27 width: 560px; 28 height: 238px; 29 margin: 6px auto 0;/*ul块元素相对父级设置剧中*/ 30 } 31 .new_list_con ul li{ 32 height: 38px; 33 border-bottom:1px solid #ddd; 34 } 35 .new_list_con ul a{ 36 float: left;/*浮动后就变成行内块元素了*/ 37 height: 38px; 38 /*line-height: 38px ul 38行高38,文字就上下居中了*/ 39 font:14px/38px 'Microsoft Yahei';/*先宽后高再字体*/ 40 text-decoration: none;/*取消下划线*/ 41 color: #000; 42 } 43 .new_list_con ul a:before{ 44 content: "· ";/*给每个列表前加个点点*/ 45 } 46 .new_list_con ul a:hover{/*鼠标移至变色*/ 47 color:red; 48 49 } 50 .new_list_con ul span{ 51 float: right;/*浮动后就变成行内块元素了*/ 52 height: 38px; 53 /*line-height: 38px ul 38行高38,文字就上下居中了*/ 54 font:14px/38px 'Microsoft Yahei';/*先宽后高再字体*/ 55 color: #000; 56 }
1 <div class="new_list_con"> 2 <h3><span>新闻列表</span></h3> 3 <ul> 4 <li><a href="">劲爆消息:宁理小红花一箭夺魁!</a><span>9012-10-1</span></li> 5 <li><a href="">劲爆消息:宁理小红花一箭夺魁!</a><span>9012-10-2</span></li> 6 <li><a href="">劲爆消息:宁理小红花一箭夺魁!</a><span>9012-10-3</span></li> 7 <li><a href="">劲爆消息:宁理小红花一箭夺魁!</a><span>9012-10-4</span></li> 8 <li><a href="">劲爆消息:宁理小红花一箭夺魁!</a><span>9012-10-5</span></li> 9 <li><a href="">劲爆消息:宁理小红花一箭夺魁!</a><span>9012-10-6</span></li> 10 </ul> 11 </div>
CSS浮动特点:
.box1,.box2,.box3{ width: 200px; height: 200px; font:30px/200px 'Microsoft Yahei'; background: green; margin: 20px; } .box1{ float: left; } .box2{ float: right; } .box3{ float: left; }
1 <div class="box1">1</div> 2 <div class="box1">1</div> 3 <div class="box1">1</div> 4 <div class="box1">1</div> 5 <div class="box1">1</div> 6 <a href="#" class="box1">这是一个a元素</a> 7 <div class="box2">2</div> 8 <div class="box3">3</div>
文档流盒布局:指盒子按照html标签编写的顺序依次从上到下,从左到右排列,
块元素占一行,行内元素在一行之内从左到右排列,先写的先排列,后写的排在后面,每个盒子占据自己的位置。
浮动特性:向左或向右,没有居中浮动那么傻逼的想法哦。
1、浮动元素有左浮动(float:left)和右浮动(float:right)两种。
2、浮动的元素会向左或向右浮动,碰到父元素边界、浮动元素、未浮动的元素才停下来(浮动的顺序看代码的执行顺序)。
3、相邻浮动的块元素可以并在一行,超出父级宽度就换行。
4、浮动让行内元素或块元素自动转化为行内块元素(划重点)。
5、浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,形成文字饶图的效果。
6、父元素内整体浮动的元素无法撑开父元素,需要清除浮动。
7、浮动元素之间没有垂直margin的合并。
清除浮动:
1 .box2 a{ 2 width: 50px; 3 height: 50px; 4 background-color: green; 5 border: 1px solid #000; 6 font-size: 16px; 7 margin:20px; 8 text-align: center; 9 line-height: 50px; 10 text-decoration: none; 11 float: left;/*这个浮动的子元素无法撑开父级的特性,需要清除浮动。*/ 12 } 13 .clearfix:after{/*常用这种*/ 14 content: ""; 15 display: table; 16 clear: both; 17 } 18 .clearfix:before,.clearfix:after{/*合并margin-top的塌陷和清除浮动的共同操作*/ 19 content: ""; 20 display: table; 21 }
1 <div class="box2 clearfix"> 2 <a href="">1</a> 3 <a href="">2</a> 4 <a href="">3</a> 5 <a href="">4</a> 6 <a href="">5</a> 7 <a href="">6</a> 8 <a href="">7</a> 9 <a href="">8</a> 10 <a href="">9</a> 11 </div>