前端学习笔记-CSS

CSS的引入方式:

  1、内嵌式引入:在标签内直接使用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>  

  2、外联式引入:使用link标签引入本地css样式文件。

1 <link rel="stylesheet" type="text/css" href="main.css">

CSS选择器:

  1、标签选择器:当前html下的所有div样式都是被设置成这样。

div{
    color: red;
}

  2、id选择器:只能选择一个标签的一个id,但权重要比类选择器大。

#div2{
    color: green;
}
<div id="div2">遥看瀑布挂前川。</div>

  3、类选择器:可选择多个标签,拓展性高(主要使用)。

.gold{
    color: gold;
}
<div class="gold">飞流直下三千尺,</div>

  4、层级选择器:即在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元素特点:

1、块元素的特点:

  独占一行,多个块元素各自另起一行,默认块元素会自动填充父级元素的宽度,

  可设置宽高,但是还是会独占一行,

  块元素可以设置margin和padding。

2、行内元素的特点:

  不支持宽高、margin的上下、padding的上下(左右都支持);

  宽高由文字;

  代码换行,会产生间距(如下图第一个图,盒子中两个a标签换行书写时,产生间距)。

  解决间距:将父级元素设置为font-size:0    行内元素自身再设置相应的font-size;

3、行内块元素的特点:

  具有块元素的特点,可以设置宽高,也具有行内元素的特点,代码换行产生间距。

  行内块元素不会独占一行,多个相邻的行内块元素排在一行内,排不下就换行。

 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常用文本样式:

  1、font同时设置文字的几个属性,写的顺序有兼容性问题,建议按照如下顺序写:font:是否加粗 字号/行高 字体 如:font:normal 12px/36px '微软雅黑';
  2、a标签设置的网页链接,如果是网络网页连接,必须加http://;
  3、text-decoration去a标签的下划线,text-decoration: none;
  4、p标签加hover,鼠标移至目标内容,目标变色。 p:hover{ } ;
  5、除了字体的设置和文本的倾斜设置,值都不加引号;
  6、针对中文版式,text-indent设置文字首行缩进;
  7、text-align不能给em标签对齐,可以给h标签对齐。因为他们的宽度不同。详细看块元素和内联元素及内联块元素的区别。

背景设置

 1 .box{
 2         width: 500px;
 3         height: 700px;
 4         border:5px solid #000;
 5         background-color: gold;/*背景设置颜色*/
 6         font-size: 50px;/*设置字号*/
 7         background-image: url(../H5/images/tu1.png);/*背景设置图片*/
 8         /*页面上放图片可以通过a标签和这种方式来实现。a上不能放内容*/
 9         background-repeat: repeat-x;/*仅仅横向平铺,y纵,no-repeat不平铺,默认全部平铺*/
10         background-position: center top;
11         /*默认靠左靠上,配合上边的repeat使用,也可用具体像素值控制位置。了解一下attachment属性*/
12         /*background: url(../H5/images/tu1.png) -20px -20px gold no-repeat;一句话实现*/
13     }

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盒子模型:

 1       .box{
 2             width: 400px;
 3             height: 400px;
 4             background: gold;
 5             border: 100px solid #000;
 6             /*省略-top、-left等。*/
 7             /*这条线是加给盒子外边的*/
 8         /*设置盒顶线型,solid实线、dashed虚线、dotted点线。*/
 9             padding: 20px;
10             /*这个padding其实是内容同盒子的内边距*/
11             /*四个值时是上、右、下、左*/
12             /*三个值时是上、左右、下*/
13             /*三个值时是上下、左右*/
14             /*盒子的真实尺寸是width/height+padding+border*/
15             margin:100px auto; 
16             /*auto是设置平分边距*/
17         }
18         .sings{
19             font-size:80px;
20             color: blue;
21             line-height: 80px;
22         }
1 <div class="box sings">关关雎鸠,<br />
2                            在河之洲。<br />
3                            窈窕淑女,<br />
4                           君子好逑。<br />
5 </div>

黑色部分是盒子边框线border的宽度,内容同盒子的内边距是padding值,可容纳内容的宽高为weight和height。

 盒子的真实占地尺寸大小为:

  盒子的宽度:width+左右padding+左右的border值。

  盒子的高度:height+上下的padding+上下的border值。

盒子模型的特点:

  1、如果不设置盒子的高度,盒子会根据里边的内容,自动撑开成合适的高度。

  2、固定盒子宽高后,内容太多,overflow可以清除浮动、隐藏溢出,产生滚动条等,auto自动产生溢出方向的滚动条。

  3、margin最好不要同时设置top和buttom,否则会产生外边距被合并的现象,合并后的外边距高度等于被合并中的高度较大者。

    解决方法:只设置margin-top或将元素浮动或定位。

  4、margin-top塌陷:给嵌套的内盒子设置margin,外盒子会出现top效果。

    解决办法:使用伪元素,引用代码如下。

1 .clearfix:before{
2             content: "";
3             display: table;
4         }

 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的合并(margin-top塌陷)。

清除浮动:

 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>

 

新闻列表案例:

 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>

菜单栏布局实例:

 1     .menu{
 2         list-style: none;/*取消黑点*/
 3         background-color: #55a8ea;
 4         padding: 0;/*取消ul自带的padding样式*/
 5         height: 40px;
 6         width: 960px;
 7         margin: 50px auto 0;
 8         position: relative;
 9     }
10     .menu li{
11         float: left;
12         width: 100px;
13         height: 40px;/*给每个li设置自己的宽高*/
14         text-align: center;/*每个li垂直居中*/
15         line-height: 40px;/*文字行高*/
16     }
17     .menu li a{
18         font:14px/40px 'Microsoft Yahei';/*字体格式不舍涉及颜色需要另外写*/
19         color: #fff;
20         text-decoration: none;/*给列表去点*/
21     }
22     .menu li:hover{
23         background-color: #00619f;  /*鼠标移至会变色*/
24     }
25     .menu .active{
26         background-color: #00619f;/* 当前页显示突出颜色*/
27     }
28     .menu .new{
29         width: 32px;
30         height: 21px; 
31         background: url(../H5/images/new.png) no-repeat;/*no-repeat设置不平铺*/
32         position: absolute;/*绝对定位*/
33         left: 345px;/*这里用技巧定位距离*/
34         top:-9px;
35     }
36     .menu .new:hover{
37         background: url(../H5/images/new.png) no-repeat;
38     }
 1 <ul class="menu">
 2         <li class="active"><a href="">首页</a></a></li>
 3         <li><a href="">网站建设</a></li>
 4         <li><a href="">招聘信息</a></li>
 5         <li><a href="">培训方案</a></li>
 6         <li><a href="">学习系统</a></li>
 7         <li><a href="">公司简介</a></li>
 8         <li><a href="">售后服务</a></li>
 9         <li class="new"></li>
10     </ul>

 

 

 

 

 

 

  

 

 

 

  

posted @ 2019-12-06 23:51  无名之辈。  阅读(354)  评论(0)    收藏  举报