css小结

css小结

什么是css?

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
(来自 百度百科

层叠样式表是核心关键词,其中样式表负责美化,层叠标志样式不会被取代而只会被覆盖。

css选择器

基础选择器

  • html选择器
  • id选择器
  • class选择器

当选择器冲突时,谁更精确就听谁的
精确度:id选择器>class选择器>html选择器

html标签选择器
通过html标签名来选择元素
① 所有的html标签都可以当做选择器
② 无论标签藏多深都会被选中
③ 选择的是所有的标签而不是具体某个标签。所以说我们通过html标签选择器来设置的都是一些共性问题。
id选择器
① 任何的标签都可以有id属性和属性值(因为id是一个全局属性)。id命名不能随意的命名。
大小写敏感 ,id的名字中可以有数字字母下划线,但是要以字母开头。
    驼峰命名法 小驼峰命名  大驼峰命名 
        testHeader 小驼峰  TestHeader 大驼峰 
        test-header test_header 
② 但是id名不能够重复 
class选择器
① 任何的标签都可以使用class属性(class属性也是一个全局属性) 
② class属性名可以重复使用 
③ 一个class属性中,可以有多个class属性值。 

测试:

    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
        /*html标签选择器 */
            p {
                color: red;
            }
    
            /*id选择器*/
            #d1 {
                color: green;
            }
    
            /*class选择器*/
            /*class可以重复使用*/
            .e1 {
                color: blue;
            }
        </style>
    </head>
    <body>
    <!-- 不够精确 -->
        <p>
            我是第一个p标签
        </p>
        <p>
            我是第二个p标签
        </p>
    
        <p>
            adasdas
        </p>
    
        <div id="d1">
            我是一个div
        </div>
    <!-- title id  class  -->
        <em class="e1">我是em,表示强调</em>
    </body>

综合选择器

  1. 后代选择器 div p

     <head>
         <meta charset="UTF-8">
         <title>Document</title>
         <style>
         /*后代选择器*/
             .d1 span {
                 color: blue;
             }
         </style>
     </head>
     <body>
         <div class="d1">
             <span>我是一级span</span>
    
             <div class="son">
    
                 <span>我是二级span</span>
    
                 <div class="d2">
                     <span>我是三级span</span>
                 </div>
             </div>
         </div>
     </body>
  2. 交集选择器 div.d1

     <head>
         <meta charset="UTF-8">
         <title>Document</title>
         <style>
             /*选中div,并且这个div的名字叫d1*/
             div.d1 {
                 color: red;
             }
             /*选中em,并且这个em的名字叫d1*/
             em.d1 {
    
             }
         </style>
     </head>
     <body>
    
         <div class="d1">我的名字叫d1,我是一个div</div>
         <h1 class="d1">我的名字也是d1 ,但是我是一个h1</h1>      
         <em class="d1">我是em,我的名字也是d1</em>       
         <div>我是一个没有名字的div</div>
     </body>
  3. 并集选择器 div,p

     <head>
         <meta charset="UTF-8">
         <title>Document</title>
         <style>
             .d1,p,em {
                 color: red;
             }
         </style>
     </head>
     <body>
         <div class="d1">我是一个div</div>   
         <p>我是第一个p标签</p>
         <em>我是em标签 </em>
         <p>我是第二个p标签</p>
     </body>
  4. 子(直系儿子)元素选择器 div>p

     <head>
         <meta charset="UTF-8">
         <title>Document</title>
         <style>
             #fa>em {
                 color: red;
             }
         </style>
     </head>
     <body>          
         <div id="fa">               
             <em>我是二级em</em>     
             <div class="son">
                 <em>我是三级em</em>     
                 <div>
                     <em>我是四级em</em>
                 </div>
             </div>
         </div>      
     </body>
  5. 序列选择器 ul li:first-child ul:li:last-child

     /*只能选中第一个和最后一个*/
     <head>
         <meta charset="UTF-8">
         <title>Document</title>
         <style>
             ul li:first-child {
                 color: red;
             }
             ul li:last-child {
                 color: blue;
             }
         </style>
     </head>
     <body>          
         <ul>
             <li>li1</li>
             <li>li2</li>
             <li>li3</li>
             <li>li4</li>
             <li>li5</li>
         </ul>       
     </body>
  6. 相邻兄弟选择器 div + p

     <head>
         <meta charset="UTF-8">
         <title>Document</title>
         <style>
         /*相邻兄弟选择器*/
             div + p {
                 color: red;
             }
    
         </style>
     </head>
     <body>
         <div>我是div</div>        
         <p>我是p标签</p>
         <p>我是第二个p标签</p>
     </body>
  7. 普通兄弟选择器 div ~ p

     <head>
         <meta charset="UTF-8">
         <title>Document</title>
         <style>
             /*普通兄弟选择器*/
             div ~ p {
                 color: red;
             }
             /*p + p {
                 color: blue;
             }*/
         </style>
     </head>
     <body>
         <div>我是div</div>        
         <p>我是p标签</p>
         <p>我是第二个p标签</p>
     </body>

继承和层叠

  1. 继承:父元素的某些css属性会被子元素无条件的继承过去。
    关于文字的css属性都可以进行继承,如:color text- line- font- 等
  2. 层叠:层叠解决的是css冲突的问题。

css冲突时,比较权重来解决层叠问题。

!important 能够把"单独属性"的权重变为无限大。 尽量少用。

继承测试:

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .d1 {
            color: red;
        }
    </style>
</head>
<body>
    <div class="d1">
        <span>hello,world</span>
    </div>
</body>

权重比较:先看是否选中标签,若选中,则按照id,class,html的顺序比较,当权重相同时,就近原则;若没有选中,则就近原则。

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
    /*id  class html */
        #box1 .hezi2 p {  /* 1   1   1*/
            color: red;
        }

        div div #box3 p {  /*1  0  3*/ 
            color: green;
        }

        div.hezi1 div.hezi2 div.hezi3 p { /*0 3 4 */ 
            color: blue;
        }
    </style>
</head>
<body>      
    <div class="hezi1" id="box1">
        <div class="hezi2" id="box2">
            <div class="hezi3" id="box3">
                <p>文字颜色</p>
            </div>
        </div>
    </div>  
</body>

块级元素和行内元素

块级元素和行内元素的区别:
    1. 行内元素部不能够设置宽度和高度。行内元素的宽度和高度是标签内容的宽度和高度。块级元素可以设置宽度和高度。

    2. 块级元素会独占一行。而行内元素却部能够独占一行,只能和其他的行内元素共用一行。

    3. 如果块级元素不设置宽度,那么块级元素会自动的沾满父元素的全部宽度。

块级元素和行内元素之间的转换:  
display: inline block inlin-block

块级元素和行内元素之间的转换测试:

    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            .s1 {
                width: 300px;
                height: 300px;
                background-color: blue;
                display: block;/*将行内元素变成块级元素*/
            }
            em {
                width: 300px;
                height: 300px;
                background-color: green;
                display: inline-block; /*行内块元素*/
            }
            .d1 {
                width: 300px;
                height: 300px;
                background-color: red;
                display: inline-block;
            }
            .d2 {
                width: 300px;
                height: 300px;
                background-color: blue;
                display: inline-block;          
            }
        </style>
    </head>
    <body>
        <div class="d1">Hello,Div</div>
        
        <span class="s1">hello,Span</span>
    
        <em>hello,Em</em>  
        <hr>
    
        <div class="d1"></div>
        <div class="d2"></div>
    </body>

转载于:https://www.cnblogs.com/mumuhanyan/p/7077954.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值