CSS宝典(选择器、盒子模型、浮动、定位)

CSS 选择器

关系选择器

<body>
    <div>
        我是div内部的文字
        <p>我是div中的p元素
            <span> 我是div中的1号span元素 </span>
        </p>
        <span>我是div中的2号span元素</span>
        <span>我是div中的3号span元素</span>
    </div>
    <span>我是div外的span</span>
</body>

<!--将 “我是div中的1号span元素” 改成红色字体-->
        <!--父子元素-->
        div > p > span{
            color: red;
        }      
        <!--或者使用不带 > 号的方法,这中方法选取的范围更广-->
        div p span{
            color: red;
        }    
<!--将 div中所有的span元素(1号、2号、3号span)改成蓝色字体-->
        div span{
            color: blue;
        }     
<!--将 2号span元素 的字体颜色改成 greenyellow-->
        <!--兄弟元素  选择下一个兄弟用 + , 选择下面所有兄弟用 ~ -->
        p + span{
            color: greenyellow;
        }      
<!--将 2号、3号span元素 的字体颜色改成 greenyellow-->
        p ~ span{
            color: greenyellow;
        }

伪类选择器

第一部分:伪类

<!--
伪类(不存在的类)描述一个元素的特殊状态
    比如:第一个子元素、被点击的元素、鼠标移动时所指示的元素
    伪类一般情况下都是使用冒号 :开头
        :first-chil
        :last-child
        :nth-child() 选中第n个子元素
            特殊值:
                n 选中所有 0~n
                2n或even 选中偶数位
                2n+1或odd 选中奇数位
            -以上这些伪类都是根据所有的子元素进行排序

        :first-of-type
        :last-of-type
        :nth-of-type()
            -这几个伪类的功能和上述的类似,不同点是它们在同类型元素中进行排序
        类似于大家庭中子女的排序:大儿子、二闺女、三儿子、四闺女;
                     换个排序:大儿子、二儿子;大闺女、二闺女

        :not() 否定伪类
            -将符合条件的元素从选择器中去除
    -->    
    <style>
        ul > li:first-child{
     
            background: #bbffaa;
        }
        ul > li:nth-child(4){
     
            background: #3F3F3F;
        }      
        <!--
        ul > li:not(:nth-child(2)){
     
            background: orange;
        }  -->
    </style>
    
<body>
    <ul>     <!-- ul>li*5  按下tab键  自动生成 -->
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</body>

第二部分:伪元素

<!--
    伪元素:表示页面中一些特俗的并真实不存在的元素(特殊位置)
        伪元素使用 :: 开头

        ::first-letter  表示第一个字母
        ::first-line   表示第一行
        ::selection    表示被鼠标选中的内容
        ::before    元素的开始  行内元素
        ::after    元素的最后   行内元素
            before 和 after 必须结合content属性来使用
       -->
    <style>
        div::before{
     
            content: "无法被选中";
            color: red;
        }
        div::after{
     
            content: "无法被选中";
            background: orange;
        }
    </style>
    
<body>
    <div>
        Something just like this!
    </div>
</body>

超链接的伪类

<!--
    超链接的伪类:
            :link 表示没访问过的链接(正常的链接)
            :visited 表示访问过的链接
            :hover 表示鼠标移入的状态
            :active 表示鼠标点击
    -->
    <style>
        a:link{
     
            color: blue;
        }
        a:visited{
     
            color: red;
        }
        a:hover{
     
            font-size: 30px;
        }
    </style>
    
<body>
    <p> <a href="https://www.baidu.com/"> 百度首页 </a> </p>
    <p> <a href="https://www.qq.com/"> 腾讯首页 </a> </p>
    <p> <a href="https://www.game.163.com/"> 网易首页 </a> </p>
    <p> <a href="https://www.baidu.com/"> 百度首页被访问过,所以我变红了 </a> </p>

</body>

选择器的优先级

样式的冲突:
当我们通过不同的选择器,选中相同的元素,并且为相同的样式设置不同的值,此时就发生了样式的冲突。

发生样式冲突时,应该用哪个样式由选择器的权重决定:

  1. 内连样式 优先级 1000; 如<h1 style="color: red; font-size: 66px">一号标题</h1>
  2. id 选择器 优先级 100
  3. class 选择器 优先级 10
  4. 元素选择器 优先级 1
  5. 通配选择器 优先级 0;如* { }选择所有元素
  6. 继承的样式没有优先级

特殊情况:

  • 如果是两种相同优先级为同一个元素、同一个属性设置的话,优先选择代码位置靠后的样式;
  • 交集选择器的优先级,所有优先级加起来运算,然后比较。交集指的是如div.className{}这类写法的选择器

可以在某个样式的后边添加 !important ,此时该样式获得最高优先级。慎用

样式的继承:

  • 我们为一个元素设置的样式同时也会应用到它的后代元素
  • 并不是所有的样式都会被继承,比如 背景相关的、布局相关等这些样式都不会被继承

长度单位 和 颜色

长度单位

  1. 像素 px
    1. 屏幕(显示器)实际上是由一个一个的点构成的
    2. 不同屏幕的像素大小是不同的,像素越小的屏幕显示的效果越清晰
  2. 百分比 %
    1. 可以将属性值设置为相对于其父元素属性的百分比
    2. 设置百分比可以使得子元素跟随父元素的改变而改变
  3. em
    1. em是相对于元素的字体大小来计算的
    2. 1 em = 1 font-size
    3. em会根据字体大小的改变而改变

颜色

  1. 在CSS中可以直接使用颜色名来设置各种颜色
  2. RGB (red
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值