zoukankan      html  css  js  c++  java
  • HTML5-CSS(一)

    一、创建 CSS 样式表有三种方式

    1. 元素内嵌样式
    <p style="color:red;font-size:50px;">这是一段文本</p>
    解释:即在当前元素使用 style 属性的声明方式。

    2. 文档内嵌样式
    <style type="text/css">
    p {
    color: blue;
    font-size: 40px;
    }
    </style>
    <p>这是一段文本</p>
    解释:在<head>元素之间创建<style>元素,通过选择器的方式调用指定的元素并设
    置相关 CSS。

    3. 外部引用样式
    <link rel="stylesheet" type="text/css" href="style.css">
    //style.css
    @charset "utf-8";

    p {
    color: green;
    font-size: 30px;
    }

    解释:很多时候,大量的 HTML 页面使用了同一个组 CSS。那么就可以将这些 CSS 样式保存在一个单独的.css 文件中,然后通过<link>元素去引入它即可。
    @charset "utf-8"表明设置 CSS 的字符编码,如果不写默认就是 utf-8。如果有多个.css 文件,可以使用@import 导入方式引入.css 文件。只不过,性能不如多个<link>链接

    二、层叠和继承

    所谓的样式表层叠:指的是同一个元素通过不同方式设置样式表产生的样式重叠。样式表继承:指的是某一个被嵌套的元素得到它父元素样式。还有一种样式叫浏览器样式,是这个元素在这个浏览器运行时默认附加的样式。

    1. 浏览器样式
    <b>这个元素隐含加粗样式</b>
    <span style="font-weight:bold;">这个元素通过 style 加粗</span>
    解释:<b>元素就是具有加粗的隐含样式,而<span>元素没有任何隐含样式,通过 style属性设置样式。

    2. 样式表层叠
    样式表层叠通过五种方式进行,如果样式相同,那么比如会产生冲突替换。这时,它的优先级顺序就显的比较重要。以下优先级从低到高:
    (1).浏览器样式(元素自身携带的样式);
    (2).外部引入样式(使用<link>引入的样式);
    (3).文档内嵌样式(使用<style>元素设置);
    (4).元素内嵌样式(使用 style 属性设置)。

    如果某一个样式被优先级高的给替换掉了,却又想执行这个样式方案,可以将这个方案标记成重要样式(important)。

    //强行设置最高优先级
    color: green !important;

     三、CSS选择器

    基本选择器

    1. 通用选择器
    * {
    border: 1px solid red;
    }
    解释:“*”号选择器是通用选择器,功能是匹配所有 html 元素的选择器包括<html>和<body>标签。可以使用如下元素标记测试效果:

    2. 元素选择器
    p {
    color: red;
    }
    <p>段落</p>
    解释:直接使用元素名称作为选择器名即可。

    3.ID 选择器
    #abc {
    font-size: 20px;
    }
    <p id="abc">段落</p>
    解释:通过对元素设置全局属性 id,然后使用#id 值来选择页面唯一元素。

    4. 类选择器
    .abc {
    border: 1px solid red;
    }
    <b class="abc">加粗</b>
    <span class="abc">无</span>
    解释:通过对元素设置全局属性 class,然后使用.class 值选择页面一个或多个元素。
    b.abc {
    border: 1px solid red;
    }
    解释:也可以使用“元素.class 值”的形式,限定某种类型的元素。
    <span class="abc edf">无</span>
    解释:类选择器还可以调用多个样式,中间用空格隔开进行层叠。

    5. 属性选择器
    [href] {
    color: orange;
    }
    解释:属性选择器,直接通过两个中括号里面包含属性名即可。当然,还有更多扩展的属性选择器。

    [type="password"] {
    border: 1px solid red;
    }
    解释:匹配属性值的属性选择器。

    [href^="http"] {
    color: orange;
    }
    解释:属性值开头匹配的属性选择器。

    [href$=".com"] {
    color: orange;
    }
    解释:属性值结尾匹配的属性选择器。

    [href*="baidu"] {
    color: orange;
    }
    解释:属性值包含指定字符的属性选择器。

    [class~="edf"] {
    font-size: 50px;
    }
    解释:属性值具有多个值时,匹配其中一个值的属性选择器。

    [lang|="en"] {
    color: red;
    }
    解释:属性值具有多个值且使用“-”号连接符分割的其中一个值的属性选择器。比如
    <i lang="en-us">HTML5</i>。

    复合选择器

    将不同的选择器进行组合形成新的特定匹配,我们称为复合选择器。
    1. 分组选择器
    p,b,i,span {
    color: red;
    }
    解释:将多个选择器通过逗号分割,同时设置一组样式。当然,不但可以分组元素选择器,还可以使用 ID 选择器、类选择器、属性选择器混合使用。

    2. 后代选择器
    p b {
    color: red;
    }
    解释:选择<p>元素内部所有<b>元素。不在乎<b>的层次深度。当然,后代选择器也可以混合使用 ID 选择器、类选择器、属性选择器。

    3. 子选择器
    ul > li {
    border: 1px solid red;
    }
    <ul>
    <li>我是儿子
    <ol>
    <li>我是孙子</li>
    <li>我是孙子</li>
    </ol>
    </li>
    <li>我是儿子</li>
    <li>我是儿子</li>
    </ul>
    解释:子选择器类似与后代选择器,而最大的区别就是子选择器只能选择父元素向下一级的元素,不可以再往下选择。

    4. 相邻兄弟选择器
    p + b {
    color: red;
    }
    解释:相邻兄弟选择器匹配和第一个元素相邻的第二个元素。

    5. 普通兄弟选择器
    p ~ b {
    color: red;
    }
    解释:普通兄弟选择器匹配和第一个元素后面的所有元素。

    伪元素选择器

    伪选择器分为两种第一种是下节伪类选择器,还有一种就是伪元素选择器。这两种选择
    器特性上比较容易混淆,在 CSS3 中为了区分,伪元素前置两个冒号(::),伪类前置一个
    冒号(:)。
    1.::first-line 块级首行
    ::first-line {
    color: red;
    }
    解释:块级元素比如<p>、<div>等的首行文本被选定。如果想限定某种元素,可以加
    上前置 p::first-line。
    2.::first-letter 块级首字母
    ::first-letter {
    color: red;
    }
    解释:块级元素的首行字母。
    3.::before 文本前插入
    a::before {
    content: '点击-';
    }
    解释:在文本前插入内容。
    4.::after 文本后插入
    a::before {
    content: '-请进';
    }
    解释:在文本后插入内容。

    结构性伪类选择器
    结构性伪类选择器能够根据元素在文档中的位置选择元素。这类元素都有一个前缀(:)。

    1. 根元素选择器
    :root {
    border: 1px solid red;
    }
    解释:匹配文档中的根元素,基本不怎么用,因为总是返回<html>元素。

    2. 子元素选择器
    ul > li:first-child {
    color: red;
    }
    解释:选择第一个子元素。
    ul > li:last-child {
    color: red;
    }
    解释:选择最后一个子元素。
    ul > li:only-child {
    color: red;
    }
    解释:选择只有一个子元素的那个子元素。
    div > p:only-of-type {
    color: red;
    }
    解释:选择只有一个指定类型的子元素的那个子元素。

    3.:nth-child(n) 系列
    ul > li:nth-child(2) {
    color: red;
    }
    解释:选择子元素的第二个元素。
    ul > li:nth-last-child(2) {
    color: red;
    }
    解释:选择子元素倒数第二个元素。
    div > p:nth-of-type(2) {
    color: red;
    };
    解释:选择特定子元素的第二个元素。
    div > p:nth-last-of-type(2) {
    color: red;
    };
    解释:选择特定子元素的倒数第二个元素。

    UI 伪类选择器
    UI 伪类选择器是根据元素的状态匹配元素。

    1.:enabled
    :enabled {
    border: 1px solid red;
    }
    解释:选择启用状态的元素。

    2.:disabled
    :disabled {
    border: 1px solid red;
    }
    解释:选择禁用状态的元素。

    3.:checked
    :checked {
    display: none;
    }
    解释:选择勾选的 input 元素。

    4.:default
    :default {
    display: none;
    }
    解释:从一组类似的元素中选择默认元素。比如 input 被勾选的即默认的。

    5.:valid 和:invalid
    input:valid {
    border: 1px solid blue;
    }
    input:invalid {
    border: 1px solid green;
    }
    解释:输入验证合法与不合法显示时选择的元素。

    6.:required 和:optional
    input:required {
    border: 1px solid blue;
    }
    input:optional {
    border: 1px solid green;
    }
    解释:根据是否具有 required 属性选择元素。

    动态伪类选择器
    动态伪类选择器根据条件的改变匹配元素。

    1.:link 和 和 visited
    a:link {
    color: red;
    }
    a:visited {
    color: orange;
    }
    解释::link 表示未访问过的超链接,:visited 表示已访问过的超链接。

    2.:hover
    a:hover {
    color: blue;
    }
    解释:表示鼠标悬停在超链接上。

    3.:active
    a:active {
    color: green;
    }
    解释:表示鼠标按下激活超链接时。

    4.:focus
    input:focus {
    border: 1px solid red;
    }
    解释:表示获得焦点时。

    其他伪类选择器

    1.:not
    a:not([href*="baidu"]) {
    color: red;
    }
    解释:否定选择器,反选。
    2.:empty
    :empty {
    display: none;
    }
    解释:匹配没有任何内容的元素。
    3.:lang
    :lang(en) {
    color: red;
    }
    解释:选择包含 lang 属性,属性值前缀为 en 的元素。和属性选择器匹配结果一致。
    4.:target
    :target {
    color: red;
    }
    解释:定位到锚点时,选择此元素。
    5.::selection
    ::selection {
    color: red;
    }
    解释:这是一个伪元素选择器,当选择文字时触发选择。CSS3 版本下的选择器。

  • 相关阅读:
    领料单取整
    财务应付金额对不上的
    销售订单计算交期
    辅助单位启用
    K3CLOUD日志目录
    QLIKVIEW-日期格式,数字格式写法
    MRP运算报错-清除预留
    整单折扣后 财务、暂估应付价税合计对不上的问题处理
    BZOJ 2976: [Poi2002]出圈游戏 Excrt+set
    BZOJ 3060: [Poi2012]Tour de Byteotia 并查集
  • 原文地址:https://www.cnblogs.com/jnba/p/13631913.html
Copyright © 2011-2022 走看看