zoukankan      html  css  js  c++  java
  • CSS

    css

    介绍

    CSS(Cascading Style Sheets)称为层叠样式表,用于对页面进行美化。

    1. 应用方式

    1. 内联样式(Inline style):指定一个标签。【不推荐,多标签无法复用样式】
    2. 内部样式表(Internal style sheet):当前页面的所有标签。【推荐,多个标签可复用样式】
    3. 外部样式表(External style sheet):所有引入css文件的页面。【推荐,多页面、多个标签均可复用样式】

    内联

    <div style="color:green;">Alex</div>

    内部

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>CSS学习</title>
        <style>
            /*给所有的div设置样式*/
            div {
                color: green;
            }
        </style>
    </head>
    <body>
        <div>anna</div>
        <div>nana</div>
    </body>
    </html>
    

    外部:

    创建一个文件common.css,写入:div {color: green;}

    引用:<link rel="stylesheet" href="common.css">

    2. 选择器

    为了准确选择标签,给它样式。

    2.1 标签选择器 标签名

    a {color: green;} 所有a标签

    2.2 id 选择器 #

    #i1 {color: green;} id为i1的标签(id标签命名一般为唯一的)

    2.3 class 选择器 .

    .green {color: green;} 所有含class有green的标签(class为一类)

    2.4 属性选择器 [ ]

    .head[name="anna"] {color: green;} 有class=head且标签中中有name='anna'的标签

    2.5 后代选择器 空格

    .head ul .hat {color: green;}

    • 子元素选择器(以大于号分隔) div>p 只能选择作为某元素子元素的元素
    • 相邻兄弟选择器(以加号分隔) div+p 选择紧接在另一元素后的元素,且二者有相同父元素
    • 后续兄弟选择器(以破折号分隔) div~p 选取所有指定元素之后的相邻兄弟元素

    2.6 选择器分组 逗号

    h1, .head h2, h3, h4 { color: green;}

    3. CSS样式

    height 高度 & width 宽度

    • 像素,根据像素设置。
    • 百分比,根据百分比设置。

    **因网页高度无限制,所以默认高度无法设置百分比,如果非要设置,则需要父级标签设置固定高度,子标签便可使用百分比设置高度。

    行内标签无法设置高度和宽度,如果想要设置必须转换为块级标签才能应用。**

    display 显示

    display:block,变为块级标签。

    display:inline,变为行内标签。

    display:inline-block,变为行块内标签(行内和块级特性结合)。

    display:none,把标签隐藏。(设置display:none隐藏标签,移除之后显示标签)。

    float 浮动(float浮动用于实现N个标签行内存放)

    页面布局时,一般都会使用div标签及float属性来实现,float设置时一般有两个值:

    float:left,标签并排向左浮动。

    float:right,标签并排向右浮动。

    布局中如果使用了float浮动,就会出现脱离文档流的现象,父标签高度为0!

    为了防止脱离文档流现象,所以以后只要出现浮动就记得要清除浮动

    <body>
        <h1>向左浮动</h1>
        <div>
            <div style="float:left; 100px;color: green;">天堂</div>
            <div style="float: left; 100px;color: red;">地狱</div>
            <!-- 清除浮动,与使用了float属性的标签放在同一级 -->
            <div style="clear:both;"></div>
        </div>
    </body>
    
    天堂
    地狱

    font 字体

    字体、大小、加粗、颜色

    font-family: "Times New Roman",Georgia,Serif; 字体

    font-size: 13px; 大小

    font-weight: 100; 加粗 (100-1000)

    color: red; 颜色 color:#f0ad4e

    文字对齐方式

    • 水平方向:左、中、右(left center right)
    • 垂直方向:上、中、下
    <div class="demo2" style="height: 100px;background-color: pink;">上对齐</div>
    <div class="demo2" style="height: 100px;background-color: darkseagreen;line-height: 100px;">垂直居中</div>
    <div class="demo2" style="height: 100px;background-color: goldenrod;position: relative; ">
        <span style="position: absolute;bottom: 0;">下对齐</span>
    </div>
    
    上对齐
    垂直居中
    下对齐

    padding 内填充 margin外边距

    可以设置上、下、左、右方向。

    padding-left:8px;
    padding-right:2px;
    padding-top:4px;
    padding-bottom:18px;
    
    /* padding:上 右 下 左; */
    padding:10px 0 2px 4px;
    /* padding:上下  左右; */
    padding:7px 5px;
    /* padding:上下左右; */
    padding:8px;
    

    关于外边距还有两个特殊的知识点需要学习。

    1. body标签默认有一个 8px的外边距,所以你会发现默认的页面都有一个“白边”。
    2. 自动居中布局,你应该见过很多网站的内容都在中间放置,两边是空白。
    1. 所以要给body:
    body{
        margin:0
    }
    
    1. 自动居中
    /* 只要指定宽度并设置margin为 0 auto 就可以实现div 自动居中布局*/
    900px;
    margin:0 auto;
    

    border边框

        <div style="border: 1px solid #333333;"></div>
        <div style="border: 1px dotted red;"></div>
        <div style="border: 3px dotted rgb(201, 151, 26);border-right: 3px solid blue"></div>
    

    border-radius:30% 也可以设置圆角边框

    background 背景

    • background-color 设置背景颜色
    • backgroud-imgage 设置背景图片
    • background-repeat 背景图片如何重复
    • background-postion 背景图片位置
    background-image: url("https://images.cnblogs.com/cnblogs_com/abc/23423/o_search.png");
    background-repeat: no-repeat;   不重复
    background-position: 50% 50%;   (x,y位移量)
    background-size: 16px 16px;     切割大小
    

    cursor光标(cursor指鼠标放在标签上之后显示的形状)

        <div style='cursor: pointer;'>div1</div>
        <div style='cursor: help;'>div2</div>
        <div style='cursor: move;'>div3</div>
    

    position对于对屏幕上的标签进行定位,定位相关知识点可以分为两种:

    1. position:fixed,生成绝对定位的元素,相对于浏览器窗口进行定位。例如最常见的广告位置和返回顶部,都是基于它来实现。
    .back-top{
         45px;
        height: 45px;
        border: 1px solid #dddddd;
        background-color: white;
        position: fixed;
        right: 2px;
        bottom: 100px;
        font-size: 12px;
        text-align: center;
        color: #757575;
    }
    
    1. position:absolute,,生成绝对定位的元素,相对于特定第一个父元素进行定位,常与position:relative结合使用。例如:想要让某标签相对某指定标签位置显示。
            .header .menus .app {
                position: relative;
            }
            .header .menus .app .download {
                padding: 10px;
                background-color: white;
                border: 1px solid #dddddd;
                position: absolute;
                left: 5px;    往内为+,往外为-
                top: 40px;
            }
    

    后台管理布局

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>CSS学习</title>
        <style>
            body {
                margin: 0;
            }
            
            .header {
                height: 48px;
                background-color: #499ef3;
            }
            
            .body .menu {
                position: fixed;
                top: 48px;
                left: 0;
                bottom: 0;
                 220px;
                border-right: 1px solid #dddddd;
                overflow: scroll;
            }
            
            .body .content {
                position: fixed;
                top: 48px;
                right: 0;
                bottom: 0;
                left: 225px;
                /* 超出范围的话,出现滚轮 */
                overflow: scroll;
            }
        </style>
    </head>
    
    <body>
        <div class="header"></div>
        <div class="body">
            <div class="menu"></div>
            <div class="content"></div>
        </div>
    </body>
    </html>
    

    opacity透明度

    例如:常见的加载,登录框等显示都是基于它实现。

    实现思路:

    基于z-index属性把页面分为三层:最下面是文章,中间层是黑色遮罩,最上层是登录框。

    为中间的黑色遮罩设置细分,否则无法看到最连续的,细分值范围:0〜1,某些地方越不透明,例如:

    filter:alpha(opacity=50); /* IE */
    -moz-opacity:0.5; /* 老版Mozilla */
    -khtml-opacity:0.5; /* 老版Safari */
    opacity: 0.5; /* 支持opacity的浏览器*/
    

    实例代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            body{
                margin: 0;
            }
            .container{
                 980px;
                margin: 0 auto;
            }
            .header{
                height: 48px;
                background-color: #499ef3;
            }
            .shade{
                position: fixed;
                top: 0;
                bottom: 0;
                left: 0;
                right: 0;
                background-color: black;
                opacity: 0.7;
            }
            .login{
                 400px;
                height: 300px;
                background-color: white;
                border: 1px solid #dddddd;
                position: fixed;
                top: 60px;
                left: 50%;
                margin-left: -200px;
            }
        </style>
    </head>
    <body>
        <div class="header"></div>
        <div class="body">
            <div class="container" style="text-align: center">
                <img src="https://images.cnblogs.com/cnblogs_com/wupeiqi/662608/o_big_girl.png" alt="">
            </div>
        </div>
        <!--遮罩层-->
        <div class="shade"></div>
        <!--登录框-->
        <div class="login">
            <h2 style="text-align: center">用户登录</h2>
        </div>
    </body>
    </html>
    

    悬停伪类(当鼠标放在标签上时,可以能够设置一些样式)

    .header .menus a{
        color: pink;
    }
    .header .menus a:hover{
        color: black;
    }
    

    之后选择器 :after

    :after选择器向预期的元素之后插入内容。

            li:after {
                content: '戴帽子';
                color: green;
                font-weight: 500;
            }
        <ul>
            <li>王宝强</li>
            <li>陈羽凡</li>
            <li>贾乃亮</li>
        </ul>
    

    在标签后添加标签,解决浮动脱离文档流的问题,不用再额外手动添加标签了。

    处理脱离文档流的问题时候,只需要为父标签应用clearfix样式即可(严重推荐)

    <head>
        <style>
            .clearfix:after{
                content: '';
                display: block;
                clear: both;
            }
        </style>
    </head>
    <body>
        <div class="row clearfix">
            <div class="item">item1</div>
            <div class="item">item2</div>
        </div>
    </body>
    
  • 相关阅读:
    非类型模板参数(针对C++)
    继承(针对C++)
    进程中的线程共享的资源有哪些?
    关键字typename(针对C++)
    设计模式之——工厂模式
    利用多线程同步互斥来创建自己的资源锁
    SQL优化总结
    委托与泛型
    第5章 事件和数据回发机制
    jQuery权威指南_读书笔记
  • 原文地址:https://www.cnblogs.com/Neroi/p/12723610.html
Copyright © 2011-2022 走看看