CSS基础 2(1)

简介: CSS基础 2


Emmet语法

       Emmet语法前身是Zen coding , 它使用缩写, 来提高CSS / html的编写速度, VSCode中已经集成该语法..

快速生成HTML结构语法

  1. 生成标签, 直接输入标签名然后按tab键即可, 比如 按div 然后按tab就自动生成

  2. 在空白的html页面, 输入!按下tab自动生成html页面结构
  3. 如果生成多个相同的标签, 直接使用*n就可以了, 例如div*3, 就可以生成三个div
  4. 如果父子关系的标签, 可以用> 比如, ul > li
  5. 如果具有兄弟关系的标签, 使用+就可以了,, 例如div + p
  6. 如果生成带有类名的或者是id的, 可以直接写标签.类名, 或者是 标签#id, 然后回车就可以了.
  7. 如果生成的div类名是有顺序的, 可以使用自增符号 $
  8. 使用{} 来包含默认的文字

快速生成CSS样式

       CSS基本采用间歇性时即可

  1. 比如w200 按 tab 可以生成 width: 200px;
  2. 比如lh26 按tab可以生成 line-height: 26px;

VSCode代码格式化

保存的时候自动格式化

下次保存文件后自动对齐

复合选择器

       在CSS中, 可以根据选择器的类型, 把选择器分为基础选择器和符合选择器, 复合选择器是建立在基础选择器之上的 对基本选择器进行组合形成的.

  • 复合选择器可以更准确, 更高效的选择目标元素(标签)
  • 复合选择器是由多个基础选择器, 通过不同的方式组合而成
  • 常用的复合选择器包括, 后代选择器, 子选择器, 并集选择器, 伪类选择器等等

后代选择器

       后代选择器又称为包含选择器, 可以选择父元素里面的子元素, 其洗发就是把外层标签写在前面, 内层标签写在后面, 中间用空格分割, 当标签发生嵌套是, 内层标签, 就称为外层标签的后代.

例如:

    <ul>
        <li>嘿嘿嘿</li>
        <li>嘿嘿嘿</li>
        <li>嘿嘿嘿</li>
    </ul>
    <ol>
        <li>哈哈哈</li>
        <li>哈哈哈</li>
        <li>哈哈哈</li>
    </ol>

现在有两个列表标签, 我们现在有需求 : 需要将ol中的li的属性改为color: red, 就可以使用后代选择器:

    <style>
        ol li {
            color: red;
        }
    </style>

语法规范

注意:

  • 元素1 和 元素2 之间使用空格隔开
  • 元素1是父级, 元素2是子级, 最终的选择是元素2, 也就是子级标签

但是也许我们会遇到这种情况:

<ol>
        <li>哈哈哈</li>
        <li>哈哈哈</li>
        <li>哈哈哈</li>
    </ol>
    <ol>
        <li>哈哈哈</li>
        <li>哈哈哈</li>
        <li>哈哈哈</li>
    </ol>

也许会存在两个完全相同的标签, 他们的子标签也想同, 但是我想要将下面这个标签里面的子标签设置样式, 这个时候还可以使用上面的方法吗?

答案是当然不行的, 这样子也会把上面那个标签的子标签给设置样式了:

于是, 为了区分第一个ol和第二个ol, 我就就需要给第二个ol设置一个类, 然后使用后代选择器的方式来选择第二个ol:

    <style>
        .test li {
            color: red;
        }
    </style>
 
    <ol>
        <li>哈哈哈</li>
        <li>哈哈哈</li>
        <li>哈哈哈</li>
    </ol>
    <ol class="test">
        <li>哈哈哈</li>
        <li>哈哈哈</li>
        <li>哈哈哈</li>
    </ol>

另外一个例子:

    <style>
        div div {
            color: red;
        }
    </style>
 
    <div>
        <p>
        <div>
            <p>
            <div>
                hahahaha
            </div>
            </p>
        </div>
        </p>
        <div>
            hahahha
        </div>
    </div>

子元素选择器

       子选择器只能 选择作为某元素的最近一级子元素, 简单理解就是选亲儿子元素

举个例子:

    <style>
        div>a {
            color: red;
        }
    </style>
    <div>
        <a href="#">我是儿子</a>
        <p>
            <a href="#">我是孙子</a>
        </p>
    </div>

解释: 子类选择器只会选择直属的亲儿子, 不会选择重孙标签

需要注意的是:

  • 元素1 和 元素2 中间需要使用 大于号 隔开
  • 元素1 是父级, 元素2 是子级, 最终选择的是元素2
  • 元素2 必须是亲儿子, 其孙子, 重孙之类都不归他管, 我们可以直接叫他亲儿子选择器

选择器的练习

<style>
        .nav ul li a {
            color: red;
        }
    </style>

<style>
        .hot>a {
            color: red;
        }
    </style>

并集选择器

       并集选择器可以选择多组标签, 同时给他们定义相同的样式, 通常用于集体声明.

       并集选择器是各选择器通过英文逗号 , 连接而成, 任何形式的选择器都可以作为并集选择器的一部分.

需要注意的是:

  • 元素1 和 元素2 中间用逗号隔开
  • 逗号可以理解为的意思
  • 并集选择器通常用于集体声明

有下面这个例子:

    <div>熊大</div>
    <p>熊二</p>
    <span>光头强</span>
    <ul class="pig">
        <li>小猪佩奇</li>
        <li>猪爸爸</li>
        <li>猪妈妈</li>
    </ul>

现在我有两个要求:

  1. 把熊大和熊二改成粉色
  2. 请把熊大和熊二改成粉色, 小猪佩奇一家改为粉色

第一个要求>>>

       我们直接使用并集选择器, 将两个div和p标签一起选择

<style>
        div,
        p {
            color: pink;
        }
    </style>

第二个要求>>>

<style>
        div,
        p,
        ul li {
            color: pink;
        }
    </style>
  • 最后一个选择器不需要加逗号
  • 我们语法上规范习惯上将选择器竖着写(并集选择器)

伪类选择器

       伪类选择器用于向某些选择器添加特殊效果, 比如给链接添加特殊效果, 或者选择第一个, 第n个元素, 伪类选择器书写最大的特点就是使用 冒号(:) 表示, 比如 :hover, : first-child

链接伪类如何使用

       对于一个链接来说, 也就是一个a标签. 如下:

<a href="#">这是一个链接</a>

我们使用鼠标按下但是不弹开的时候会显示一个种红色:

但是如果我们要更改这种样式, 我们就必须使用到我们的链接伪类选择器, 设置如下:

一个案例:

 a:link {
            color: black;
            text-decoration: none;
        }
 
        a:visited {
            color: gray;
        }
 
        a:hover {
            color: green
        }
 
        a:active {
            color: blueviolet;
        }
    </style>
    <a href="https://www.sogou.com/" target="_blank">这是一个链接</a>

注意事项

  • 为了确保生效, 请按照LVHA的声明顺序; ink , visited, hover, active.
  • 因为a链接在浏览器中具有默认样式, 所以我们在实际工作中, 都需要给链接单独指定样式

:focus 伪类选择器

       焦点是光标, 一般情况下,  类表单元素才可以获取, 因此这个选择器也主要针对于表单元素来说.

       下面是其语法格式:

例如这里有三个表单, 我点击第三个表单, 那么焦点就会到第三个表单身上()

复合选择器总结

CSS元素显示模式

       了解CSS的元素显示模式, 可以让我们更好的进行页面布局

  1. 什么是元素显示模式
  2. 元素显示模式的分类
  3. 元素显示模式的转换

元素显示模式

      作用: 网页的标签非常多, 在不同的地方会用到不同类型的标签, 了解他们的特点可以更好的布局我们的页面

       元素显示模式, 总体来说, 就是元素(标签) 以上面方式进行显示, 比如div标签自己独占一行, span标签一行可以放多个

      HTML元素分为两类:

  • 块级元素
  • 行内元素

块级元素

       常见的块级元素有h1 ~ h6, p. div, ul, ol. li等, 其中div标签是典型的块级元素

块级元素的特点:

  1. 比较霸道, 自己独占一行
  2. 高度, 宽度, 外边距以及内边距可以自己控制
  3. 宽度默认是容器(父级宽度)的100%
  4. 是一个容器及盒子, 里面可以放行内或者块级元素
<div>比较霸道自己独占一行</div> 瑟瑟发抖

<div>比较霸道自己独占一行</div> 瑟瑟发抖
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
        }
    </style>

注意:

  • 文字类的元素不能使用块级元素
  • p标签用于存放文字, 因此p标签里面不能放块级元素, 特别是div标签不能放
  • 同理, h1 ~ h6 等都是文字类块级元素, 里面也不能放其他块级元素

行内元素

       常见的行内元素, 如a, strong, em,i, del, ins, span等, 其中span是最典型的行内元素, 其他的地方也将行内元素称为内联元素.

       特点, 一行可以放多个行内元素:

<i>hello world</i> <strong>hahahha</strong><i>hello world</i> <strong>hahahha</strong>

行内元素的特点:

  • 相邻行内元素在一行上, 一行可以显示多个
  • 高宽直接设置是无效的
  • 默认宽度就是它本身内容的宽度
  • 行内元素只能容纳文本或其他行内元素
  • 链接a中不能再放链接
  • a标签可以放块级元素, 但是给a转换一下块级模式会更安全

行内块元素

       在行内元素中有几个特殊的标签>> img, input, td, 他们都具有块级元素和行内元素的特点, 有些资料称他们为行内块元素

行内块元素的特点:

  1. 相邻行内元素(行内块) 在一行上, 但他们之间会有空白缝隙, 一行可以显示多个(行内元素特点)
  2. 默认宽度就是他本身内容的宽度
  3. 高度, 行高, 外边距以及内边距都可以控制

元素显示模式总结

元素模式 元素排列 设置样式 默认宽度 包含
块级元素 一行只能放一个块级元素 可以设置宽度和高度 容器的100% 容器级可以包含任何标签
行内元素 一行可以放多个行内元素 不可以直接设置宽度和高度 它本身内容的宽度 容纳文本或其他行内元素
行内块元素 一行可以放多个行内块元素 可以设置宽度和高度 它本身内容的宽度


CSS基础 2https://developer.aliyun.com/article/1517389

目录
相关文章
|
3月前
|
前端开发 UED
css基础
css基础
14 0
|
3月前
|
前端开发 UED
CSS 基础
【8月更文挑战第16天】
|
6月前
|
前端开发
CSS基础 2(2)
CSS基础 2
31 2
|
6月前
|
前端开发 容器
CSS 基础 3
CSS 基础 3
29 1
|
6月前
|
前端开发 JavaScript 程序员
CSS【基础】
CSS【基础】
69 0
|
人工智能 前端开发 JavaScript
CSS基础(4)
为什么需要定位 浮动可以让多个块级盒子一行没有缝隙排列显示, 经常用于横向排列盒子。 定位则是可以让盒子自由的在某个盒子内移动位置或者固定屏幕中某个位置,并且可以压住其他盒子。
55 1
|
存储 人工智能 前端开发
CSS基础(3)
CSS 的三大特性 CSS有三个非常重要的三个特性:层叠性、继承性、优先级 网页布局过程: 先准备好相关的网页元素,网页元素基本都是盒子Box 。 利用 CSS 设置好盒子样式,然后摆放到相应位置。 往盒子里面装内容。 网页布局的核心本质:就是利用 CSS 摆盒子。
132 1
|
移动开发 前端开发 HTML5
CSS基础05
从头学前端-CSS基础05
118 0
|
算法 前端开发
CSS基础之textstyle
CSS基础之textstyle
111 0
CSS基础之textstyle
|
缓存 前端开发 JavaScript
CSS 基础(上)
CSS 基础(上)
134 0
CSS 基础(上)