zoukankan      html  css  js  c++  java
  • 前端知识-2-CSS

    一、什么是 CSS?

    CSS是一个能改变 HTML 文档中样式,那么它有什么作用?

    • CSS 指层叠样式表 
    • 样式定义如何显示 HTML 元素
    • 样式通常存储在样式表中
    • 是为了解决内容与表现分离的问题
    • 外部样式表可以极大提高工作效率
    • 外部样式表通常存储在 CSS 文件中
    • 多个样式定义可层叠为一个

    可以看出就类似我们 Python 自动化测试代码中数据分离,POM设计模式等等。

    其实在 HTML 文档中也可以更改样式的,如:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>html内样式</title>
        <style>
            /*所有p标签改样式*/
            p{color: #cc0000}
        </style>
    </head>
    <body>
    <p>我是一个小小的石头</p>
    <div>
        <p>div大石头</p>
    </div>
    </body>
    </html>

     二、选择器

    有了选择器才能对应改变你想改变的 HTML 文档中一些样式,所以接下来我们学习选择器。

     注释使用:/* 您的注释内容 */

     引入 CSS 文件样式需在 head 中导入:<link rel="stylesheet" href="CSS文件名.css">

    1、标签选择器:直接标签名

    /* 1、标签选择器 */
    p{color:red;font-size:48px}

    2、ID选择器:#id

    id 是你在定义 HTML 文档中的 id。

    /* 2、ID选择器 */
    #gsxl{font-size:24px}

    3、类选择器:.class

    /* 3、类选择器 */
    .class{color:red;font-size:48px}

    4、整体替换 :*

    /* 4、整体替换 */
    * {color:#A8A8A8;}

    接下来是组合选择器:

    5、后代选择器:空格

    divid 中 p 标签任意一种组合比如id+标签

    /* 5、后代选择器 空格*/
    #divid p{color: #66cc66}

    6、下级选择器 :>

    divid 下面的所有 p 标签

    /* 6、下级选择器 > */
    #divid >p{color: #167F92}

    7、毗邻选择器:+

    /* 7、毗邻选择器 + */
    #div1+p{color: chartreuse;}

    8、(弟弟)同级选择器:~

    /* 8、(弟弟)同级选择器 ~ */
    #div1~p{color: red;}

    9、属性选择器:[属性值]

    /* 9、属性选择器 */
    [res] {color: yellow}

    10、分组选择器 :逗号

    /* 10、分组选择器 */
    #d1,p,div{color: blueviolet}

    11、嵌套选择器:+

    /* 11、嵌套选择器 */
    div+h4{color: coral}

    12、其他使用:ID、自定义属性值等任意组合

    ^:匹配xx开头;

    $:匹配xx结尾

    /* 12、其他使用 */
    [ret="gs"] {color: #024457}

    1-12 选择器对应所有 HTML 文档:

    <!DOCTYPE html>
    <html lang="cn">
    <head>
        <meta charset="UTF-8">
        <title>css文件导入</title>
        <!--    <link rel="stylesheet" href="index.css">-->
        <link rel="stylesheet" href="index.css">
    
    <!--  ^:匹配xx开头;
          $:匹配xx结尾
    -->
    <!--    <style>[ret^="gs"]{color: #66cc66}</style>-->
    <!--    <style>[ret$="xl"]{color: #66cc66}</style>-->
    </head>
    <body>
    
    <!-- 1、标签选择 -->
    <div>
        <p>pppp标签</p>
        <div>
            <p>啪啪啪啪啪啪</p>
        </div>
    </div>
    <p>我也是pppp</p>
    
    <!-- 2、ID选择器 -->
    <div id="gsxl">
        <p>哈哈哈抓不到我吧,没有办法</p>
        <h6>我是一个h6</h6>
    </div>
    
    <!-- 3、类选择器 -->
    <div class="haha">累呀
        <p class="haha">累呀累呀累呀累呀</p>
    </div>
    <p class="haha">累呀累呀</p>
    
    <!-- 4、整体替换 -->
    <div>
        <p>666</p>
        <div>整体替换???</div>
    </div>
    
    <!--  6、儿子选择器  -->
    <div id="divid">
        <p>我是儿子1,也就是嵌套在div第一层的标签</p>
        <div>
    
    <!--  5、后代选择器     -->
            <p>我是嵌套在div第二层中的P标签</p>
            <div>我是嵌套在div中的span标签</div>
        </div>
        <p>我是儿子2</p>
    </div>
    
    <!-- 7、毗邻选择器-->
    <div id="div1">我是毗邻</div>
    <p>我是毗邻1</p>
    
    <!-- 8、同级选择器-->
    <p>111</p>
    <p>222</p>
    <p>333</p>
    
    <!-- 9、属性选择器 -->
    <div res="gsxl">小石头</div>
    <p res="gsxl">大石头</p>
    
    <!-- 10、分组选择器-->
    <div id="d1">
        <p>666</p>
        <div class="c6">整体替换???</div>
    </div>
    
    <!-- 11、嵌套选择器-->
    <div id="d2"></div>
    <h4>p4444</h4>
    
    <!-- 12、其他使用-->
    <p ret="gs">哈哈哈抓不到我吧</p>
    <p ret="gsxl">哈哈哈抓不到我吧111</p>
    <p ret="hahxl">哈哈哈抓不到我吧222</p>
    
    </body>
    </html>

    13、伪类选择器

    ①a:link,链接未被访问点击过的颜色

    /*a:link 链接未被点击过的颜色 */
    a:link {color: #66cc66;}

    ②a:visited,链接被访问点击过的颜色

    /*a:visited 链接被点击过的颜色 */
    a:visited {color: #cc0000;}

    ③a:hover,鼠标移上去的颜色

    /*a:hover 鼠标移上去的颜色 */
    a:hover {color: #cc6600}
    #d1:hover {color: #cc0000}

    ④a:active,鼠标选中时的颜色 

    /* a:active 选中时的颜色   */
    #d1:active {color: deeppink}

    ⑤输入框聚焦时底色

    /* 输入框聚焦时底色 */
    input:focus{
        outline: #cc0000;
        background-color: #A8A8A8;}

    ⑥首字符设置特殊样式

    /* 首字符设置特殊样式 */
    p:first-letter{
        font-size: 48px;
        color: darkred}

    ⑦在HTML内容前面加字符

    /* 在HTML内容前面加字符 */
    .str:before{
        content: ">>>>";
        color: #cc0000;}

    ⑧在str类行字符后面加入字符

    /* 在字符后面加入一个问号 */
    .str:after{content: "[?]";
    color: #5495E6}

    附上伪类选择器 HTML 文档:

    <!DOCTYPE html>
    <html lang="cn">
    <head>
        <meta charset="UTF-8">
        <title>伪类选择器示例</title>
        <style>
            /*a:link 链接未被点击过过的颜色 */
            a:link {
                color: #66cc66;}
    
            /*a:visited 链接被点击过过的颜色 */
            a:visited {
                color: #cc0000;}
    
            /*a:hover 鼠标移上去的颜色 */
            a:hover {color: #cc6600}
            #d1:hover {color: #cc0000}
    
            /* a:active 选中时的颜色   */
            #d1:active {color: deeppink}
    
            /* 输入框聚焦时底色 */
            input:focus{
                outline: #cc0000;
                background-color: #A8A8A8;}
    
            /* 首字符设置特殊样式 */
            p:first-letter{
                font-size: 48px;
                color: darkred}
    
            /* 在内容前面加内容 */
            .str:before{
                content: ">>";
                color: #cc0000;}
    
            /* 在str类行字符后面加入字符 */
            .str:after{content: "[?]";
            color: #5495E6}
        </style>
    </head>
    <body>
    <div id="d1">我是div的标签</div>
    <a href="https://www.cnblogs.com/gsxl/">博客园</a>
    <a href="https://www.baidu.com/">百度</a>
    <a href="https://www.sohu.com/">搜狐</a>
    <input type="text" name="" id="">
    <p>我是一个小小的石头,我是一个小小的石头,我是一个小小的石头,我是一个小小的石头</p>
    <p>我是一个小小的石头,我是一个小小的石头,我是一个小小的石头</p>
    <p>我是一个小小的石头,我是一个小小的石头</p>
    <p>我是一个小小的石头</p>
    <p class="str">我是一个小小的石头</p>
    <p class="str">我是一个小小的石头</p>
    </body>
    </html>

     三、文字属性

    1、font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使用它可识别的第一个值。

    body{
         font-family: "Microsoft YaHei UI Light","微软雅黑",sans-serif;}

    2、字体大小:font-size,可在body直接设置为全局变量

    /*字体大小*/
    p{font-size: 48px}

    3、字重

    /*字重*/
    p{font-weight: 900}

    4、文字对齐:text-align

    /* 文字对齐:text-align
    left:默认左对齐
    right:右对齐
    center:居中
    justify:两端对齐*/
    p{text-align: center}

    5、文字装饰:text-decoration

    underline:下划线
    line-through:删减线
    text-decoration : none:取消标签自带的下划线

    /*文字装饰*/
    p{text-decoration: line-through}

    6、字符缩进:text-indent

    /*6、字符缩进:text-indent*/
    div{text-indent: 96px}

     四、背景属性

    1、背景颜色

    /*1、背景颜色*/
    background-color: red;

    2、背景图片

    /*背景重复*/
    /*repeat(默认):背景图片平铺排满整个网页*/
    /*repeat-x:背景图片只在水平方向上平铺*/
    /*repeat-y:背景图片只在垂直方向上平铺*/
    /*no-repeat:背景图片不平铺*/
    /*ackground-position: 50% 50% 图片比例居中*/
    /*ackground-position: 50px 50px 图片比例居中*/

    /*2、背景图片*/
    background-image: url('1.jpg');

     3、边框,通常简写为:border: 10px green solid;

    上下左右边框自由设置,如右边框:border-right: 10px solid green;

    /* 3、边框
     默认写法:border: 10px green solid;*/
    .c2 {
        height: 500px;
        width: 300px;
        background-color: black;
        border-width: 10px;
        border-color: green;
        border-style: solid;
    }

    4、控制展示顺序:display

    如竖列表改为横列表

    4、控制展示顺序
    .c1 {display: inline;}

     5、CSS盒子模型

    顺序:上 下 右 左

    1. margin: 边框之外的距离(多用来调整 标签和标签之间的距离),一般初始化 margin 参数。
    2. border边框
    3. padding:内容区和边框之间的距离(内填充/内边距)
    4. condent: 内容

    /*5、CSS盒子模型*/
    .test {
      margin: 5px 10px 15px 20px;}

     

    五、float 浮动

    只要设置为 float 浮动,就成为块级标签

    1、div 配合 float 来做页面的布局例子:float: right

    <!-- div 配合 float 来做页面的布局
         行内标签不能设置宽度高度-->
    <!DOCTYPE html>
    <html lang="cn">
    <head>
        <meta charset="UTF-8">
        <title>浮动</title>
        <style>
            * {margin: 0;padding: 0}
            .c1 {height: 500px;
                width: 20%;
                background-color: #66cc66;
                float: left}
            .c2 {height: 500px;
                width: 80%;
                background-color: #cc0000;
                float: right}
        </style>
    </head>
    <body>
    <div class="c1"></div>
    <div class="c2"></div>
    </body>
    </html>

    2、清除浮动示例:clear: left;

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>清除浮动示例</title>
        <style>
            #d1 {
                border: 1px solid black;
            }
            .c1,
            .c2 {
                float: left;
                height: 100px;
                width: 100px;}
            #d1:after {
                content: "";
                clear: left;
                display: block;}
        </style>
    </head>
    <body>
    
    <div id="d1">
        <div class="c1">c1</div>
        <div class="c2">c2</div>
        <div class="c3"></div>
    
    </div>
    </body>
    </html>

    3、溢出处理:overflow,圆头像例子。

    visible:默认值。内容不会被修剪,会呈现在元素框之外。
    hidden:内容会被修剪,并且其余内容是不可见的。
    scroll:内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
    auto:如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
    inherit:规定应该从父元素继承 overflow 属性的值。
    overflow:水平和垂直均设置
    overflow-x:设置水平方向
    overflow-y:设置垂直方向

    .res_img {
    width: 120px;
    height: 120px;
    border: 2px solid red;
    border-radius: 100%;
    /*溢出处理为圆头像*/
    overflow: hidden;

    4、定位

    relative:相对定位
    absolute:绝对定位
    fixed:固定位置

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>定位示例</title>
        <style>
            * {margin: 0; padding: 0;
                text-align: center;
                line-height: 150px
            }
            .c1,.c2,.c3{
                width: 150px;
                height: 150px;}
            .c1 {background-color: #cc0000}
    
            /* relative:相对定位*/
            .c2 {background-color: #66cc66;
                position: relative;
                top: 150px;
                left: 300px}
    
            /* absolute:绝对定位*/
            .c3 {background-color:rosybrown;
                position: absolute;
                left: 150px;
                top: 150px}
    
            /* fixed:固定位置 */
            .c4 {position: fixed;
                bottom: 100px;
                right: 120px;
                background-color: #1f96e0;
                line-height: 25px}
        </style>
    </head>
    <body>
    <div class="c1">c1</div>
    <div class="c2">c2</div>
    <div>
        <div class="c3">c3</div>
    </div>
    <div class="c4">返回顶部</div>
    </body>
    </html>

    欢迎来大家QQ交流群一起学习:482713805 !!!

  • 相关阅读:
    【bzoj2100】[Usaco2010 Dec]Apple Delivery 最短路
    【bzoj2190】[SDOI2008]仪仗队 欧拉函数
    【bzoj1507】[NOI2003]Editor /【bzoj1269】[AHOI2006]文本编辑器editor Splay
    【bzoj1821】[JSOI2010]Group 部落划分 Group Kruskal
    【bzoj1877】[SDOI2009]晨跑 费用流
    【bzoj2834】回家的路 分层图最短路
    【bzoj1579】[Usaco2009 Feb]Revamping Trails 道路升级 分层图最短路
    在UIElement外面多套一层布局面板(Grid、StackPanel)的意义
    在Window工作区按下鼠标左键拖动窗体
    滚动条——WPF ScrollViewer的应用
  • 原文地址:https://www.cnblogs.com/gsxl/p/12637584.html
Copyright © 2011-2022 走看看