理解CSS | 青训营笔记

56 阅读2分钟

这是我参与「第五届青训营」伴学笔记的第二天

一、CSS是什么

  • CSS英文全称是Cascading Style Sheets
    层叠样式表 用来定义页面元素的样式
  • 可以设置字体颜色,设置位置和大小,添加动画效果

1.css代码构成

  在举例中

  • h1为选择器Selector
  • color属性选择器Property
  • white属性值Value
  • color:white一起为声明Declaration
    h1 {
            color: white;
        }

2.CSS的使用方法

  • 外链式
 <link rel="stylesheet" href="/expr/project/css/index.css">
  • 嵌入式
    <style>
        li {
            margin: 0;
            list-style: none;
        }       
    </style>
  • 内联式
   <p style="margin: lem 0;">Example Content</p> 

  注:推荐使用外链写法,可以做到内容和样式的分离;对于组件式开发,vue的单文件组件是把html、css、js写在一起的,嵌入式也很常用;较为不推荐使用内联样式,特殊情况下使用。

3.CSS是如何工作的

  首先浏览器加载并解析HTML,创建一棵DOM树,解析HTML时加载并解析css,添加样式到相应节点,得到一棵渲染树,最终展示到页面,如图。

二、选择器Selector

  作用:找出页面中的元素,以便给他们设置样式

方式1:按照标签名、类名或id

  • 通配选择器 *  可以将页面中所有元素渲染
<style>
    *{
        color: red;
        font-size: 14px;
    }
</style>
  • 标签选择器  通过标签来选择
<style>
   h1 {
            color: white;
            font-size: 14px;
        }
</style>
<body>
    <h1></h1>
</body>
  • id选择器  给标签设置id属性来选择 需要注意id在页面中唯一
<style>
    #logo {
        font-size: 60px;
        font-weight: 200;
        color: red;
    }
</style>

<body>
    <h1 id="logo">Example Content</h1>
</body>
  • 类选择器  给标签设置class属性来选择 可以出现多次,很常用
<style>
    .done {
        color: grey;
        text-decoration: line-through;
    }
</style>

<body>
    <ul>
        <li class="done">HTML</li>
        <li class="done">CSS</li>
        <li>JS</li>
    </ul>
</body>

方式2:按照属性

   根据属性是一个特定的值来选择元素,如例子中input有一个禁用属性,想要给所有有disabled属性的标签进行更改样式,就可以用到属性选择器;想要某个属性有一个特定值时选中,则可以用属性名+特定值的形式进行样式的更改。

<style>
    [disabled] {
        background: #eee;
        color: #999;
    }

    input[type="password"] {
        border-color: red;
        color: red;
    }
</style>

<body>
    <label>用户名:</label>
    <input type="name" disabled />

    <label>密码:</label>
    <input type="password" value="123456">
</body>

   当属性值匹配到某一条件时这样选择

<style>
    a[href^="#"] {
        color: red;
        background: 0 center/1em url(shou.webp) no-repeat;
        padding-left: 1.1em;
    }

    a[href$=".jpg"] {
        color: pink;
        background: 0 center/1em url(miHoYo_Game.2457753.png) no-repeat;
        padding-left: 1.2em;
    }
</style>

<body>
    <p><a href="#top">回到顶部</a></p>
    <p><a href="a.jpg">查看图片</a></p>
</body>

方式3:按照DOM树中的位置

  • 复合选择器之伪类选择器
    复合选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第一个第n个元素,书写最大的特点是用(:)显示,有链接伪类,结构伪类等
<style>
        /* 注意,编写的时候按照LVHA(love hate)来写,需要给a链接单独指定样式 */
        /* 1.未访问的链接a:link */
        a:link {
            color: green;
            /* 取消下划线 */
            text-decoration: none;
        }

        /* 2.选择点击过的链接a:visited  */
        a:visited {
            color: purple;
        }

        /* 3.选择鼠标经过的那个链接 a:hover */
        a:hover {
            color: skyblue;
        }

        /* 4.选择的是鼠标正在按下去但没有弹起来的那个链接 */
        a:active {
            color: orange;
        }

        /* 日常使用的例子 */
        a {
            color: #333;
            text-decoration: none;
        }

        a:hover {
            color: #369;
            text-decoration: underline;
        }
    </style>
</head>

<body>
    <!-- <a href="#">猪猪女孩</a> -->
    <a href="#">fighting</a>
</body>

未完待续。。。