• python基础-第十篇-10.2CSS基础


    • CSS是Cascading Style Sheet的简称,中文为层叠样式表
    • 属性和属性值用冒号隔开,以分号结尾

    引入方式

      行内式--在标签的style属性中设定CSS样式

    <body>
        <div style="background-color:red;height:200px;50px">你好</div>
    </body>
    

       嵌入式--是将CSS样式集中写在网页的<head>标签的<style></style>标签对中

    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            div{
            background-color:blue;
            height:500px;
            100px
            }
        </style>
    </head>
    <body>
        <div>未来很精彩!</div>
    </body>
    

       导入式--将一个独立的.css文件引入HTML文件中,导入式使用@import引入外部CSS文件,<style>标记也是写在<head>标记中

    • 导入式会在整个网页装载完后再转载CSS文件

    divs.css

    div{
    background-color:blue;
    height:500px;
    100px
    }
    

     html文件

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            @import "divs.css";
        </style>
    </head>
    <body>
        <div>未来很精彩!</div>
    </body>
    </html>
    

       链接式--将一个独立的.css文件引入到HTML文件中,使用<link>标记写在<head>标记中

    • 链接式会以网页文件主体装载前装载css文件
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <link href="divs.css" rel="stylesheet" type="text/css">
    </head>
    

    样式应用顺序

    1. 行内样式优先级最高
    2. 相同样式,不同样式属性将以合并的方式呈现
    3. 相同样式并且相同属性,呈现方式在<head>中的顺序决定,后面会覆盖前面属性
    4. !important  指定样式规则应用最优先
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            #cl{
            background-color:red
            }
            div{
            background:green !important
            }
        </style>
    </head>
    <body>
        <div id="cl" style="background-color:blue">未来很精彩!</div>
    </body>
    

    选择器

      基本选择器

      1、通用元素选择器

    • *表示应用到所有的标签
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            *{
            background:green
            }
        </style>
    </head>
    <body>
        <div id="cl">未来很精彩!</div>
        <div id="c2">明天很美好!</div>
        <div id="c3">今天也很如意</div>
    </body>
    

       2、标签选择器

    • 匹配所有使用某种标签的元素
    div{background:green}
    

       3、类选择器

    • 匹配所有class属性中包含info的元素
    • 语法:.类名{样式}(类名不能以数字开头,类名区分大小写)
    .lizhi{background:green}
    <div class="lizhi">未来很精彩!</div>
    <div class="lizhi">明天很美好!</div>
    

       4、ID选择器

    • 使用id属性来调用样式,在一个网页中id的值都是唯一的
    • 语法:#ID名{样式}(id名不能以数字开头)
    #c3{background:green}
    <div id="c3">今天也很如意</div>
    

      组合选择器

      1、多元素选择器

    • 同时匹配h3,h4标签,之间用逗号分隔
     h3,div{background:green}
    <h3>alex</h3>
    <div>eric</div>
    

       2、后代元素选择器

    • 匹配所有div标签里嵌套的P标签,之间用空格分隔
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            div p{background:green}
        </style>
    </head>
    <body>
        <div>
            <p>nick</p>
            <div>
                <p>alex</p>
                <p>eva</p>
            </div>
            <h1>eric</h1>
        </div>
    </body>
    

       3、子元素选择器

    • 匹配所有div标签嵌套的子p标签,之间用>分隔
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            div>p{background:green}
        </style>
    </head>
    <body>
        <div class="cc">
            <b class="dd">
                <p>alex</p>
                <p>eva</p>
            </b>
            <p>eric</p>
        </div>
    </body>
    

       4、毗邻元素选择器

    • 匹配所有紧随div标签之后的同级标签p,之间用+分割(只能匹配一个)
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            div+p{background:green}
        </style>
    </head>
    <body>
        <p>eva</p>
        <div>alex</div>
        <p>eric</p>
        <p>seven</p>
    </body>
    

      属性选择器

      1、【属性】 and 标签【属性】

    • 【属性】  设置所有具有这个属性的标签元素
    • 标签【属性】  设置所有含有这个属性并是这类标签的标签元素
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            [id]{background:green}
            p[id]{background:red}
        </style>
    </head>
    <body>
        <div id="大家好">nick</div>
        <p id="才是真的好">seven</p>
    </body>
    

      2、【属性=属性值】

    • 设置所有这个属性等于指定属性值的标签元素
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            [id="大家好"]{
            background:green
            }
            [id="才是真的好"]{
            font-size:100px;
            color:red
            }
    
        </style>
    </head>
    <body>
        <div id="大家好">nick</div>
        <p id="才是真的好">seven</p>
    </body>
    

       3、【title~=Nick】

    • 设置所有title属性具有多个空格分隔的值,其中一个值等于“Nick”的标签元素
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            [title~="Nick"]{
            background:black;
            font:500px;
            color:white
            }
        </style>
    </head>
    <body>
        <p title="Nick Jenny">Nick</p>
        <p title="Jenny Nick">Jenny</p>
        <p title="seven Jenny">seven</p>
    </body>
    

       4、【title|=Nick】 

    • 设置所有title属性具有多个连字号分隔(hyphen-separated)的值、其中值以‘Nick’开头的标签元素
    • lang属性:“en”、“en-us”、“en-gb”
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            [title|="Nick"]{
            background:black;
            font:500px;
            color:white
            }
        </style>
    </head>
    <body>
        <p title="Nick-Jenny">Nick</p>
        <p title="Nick_Jenny">Nick</p>
        <p title="Jenny-Nick">Jenny</p>
        <p title="Nick">Jenny</p>
        <p title="seven Jenny">seven</p>
    </body>
    

       5、【title^=Nick】

    • 设置属性值以指定值开头的每个标签元素
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            [title^="Nick"]{
            background:black;
            font:500px;
            color:white
            }
        </style>
    </head>
    <body>
        <p title="Nick-Jenny">Nick</p>
        <p title="Nick_Jenny">Nick</p>
        <p title="Jenny-Nick">Jenny</p>
        <p title="Nick">Jenny</p>
        <p title="Nick Jenny">seven</p>
    </body>
    

       6、【title$=Nick】 

    • 设置属性值以指定值结尾的每个标签元素
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            [title$="Nick"]{
            background:black;
            font:500px;
            color:white
            }
        </style>
    </head>
    <body>
        <p title="Nick-Jenny">Nick</p>
        <p title="Nick_Jenny">Nick</p>
        <p title="Jenny-Nick">Jenny</p>
        <p title="Nick">Jenny</p>
        <p title="Jenny Nick">seven</p>
    </body>
    

       7、【title*=Nick】

    • 设置属性值中包含指定值的每个元素
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            [title*="Nick"]{
            background:black;
            font:500px;
            color:white
            }
        </style>
    </head>
    <body>
        <p title="Nick-Jenny">Nick</p>
        <p title="jigNickJenny">Nick</p>
        <p title="Jenny-Nick">Jenny</p>
        <p title="Nick">Jenny</p>
        <p title="Jenny Nick">seven</p>
    </body>
    

      伪类选择器

      1、link、hover、active、visited

    • a:link(未访问的链接状态),用于定义常规的链接状态
    • a:hover(鼠标放在链接上的状态),用于产生视觉效果
    • a:active(在链接上按下鼠标时的状态)
    • a:visited(已访问过的链接状态)
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            a:link{color:black}
            a:hover{color:green}
            a:active{color:red}
            a:visited{color:blue}
        </style>
    </head>
    <body>
        <a href="https://www.baidu.com" target="_blank">百度一下</a>
        <a href="https://www.sogou.com" target="_blank">搜狗一下</a>
    </body>
    

       2、befor、after

    • p:before  在每个<p>元素的内容之前插入内容
    • p:after  在每个<p>元素的内容后插入内容
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            p{color:blue;}
            p:before{content:"before...";}
            p:after{content:"..after";}
        </style>
    </head>
    <body>
        <p>seven</p>
        <p>eric</p>
    </body>
    

    常用属性

      1、颜色属性

        <p style="color:blue">seven</p>
        <p style="color:#ffee33">alex</p>
        <p style="color:rgb(255,0,0)">eric</p>
        <p style="color:rgba(255,0,0,0.5)">nick</p>
    

       2、字体属性

      font-style:用于规定斜体文本

    • normal  文本正常显示
    • italic  文本斜体显示
    • oblique  文本斜体显示

      font-weight:设置文本粗细

    • normal(默认)
    • bold(加粗)
    • bolder(相当于<strong>和<b>标签)
    • lighter(常规)
    • 100~900 整百(400=normal,700=bold)

       font-size:设置字体的大小

    • 默认值:medium
    • <absolute-size>可选参数值:xx-small,x-small,small,medium、large、x-large、xx-large
    • <relative-size>相对父标签中字体的尺寸进行调节。可选参数值:smaller,largeer
    • <percentage>百分比指定文字大小
    • <length>用长度值指定文字大小,不允许负值

      font-family:字体名称

    • 使用逗号隔开多种字体

      font:简写属性

    • 语法:font:字体大小/行高 字体(字体要在最后)
        <p style="font-size:20px">seven</p>
        <p style="font-size:50%">seven</p>
        <p style="font-size:larger">seven</p>
        <p style="font-family:宋体">alex</p>
        <p style="font-family:微软雅黑">alex</p>
        <p style="font-weight:lighter">eric</p>
        <p style="font-weight:bold">eric</p>
        <p style="font-weight:border">eric</p>
        <p style="font-weight:900">eric</p>
        <p style="font-style:oblique">nick</p>
        <p style="font-style:normal">nick</p>
    

       3、文本属性

      white-space:设置元素中空白的处理方式

      direction:规定文本的方向--ltr(默认),rtl

      text-align:文本的水平对齐方式--left,center,right

      line-height:文本行高

      text-indent:文本缩进

      letter-spacing:添加字母之间的空白

      word-spacing:添加每个单词之间的空白

      text-transform:属性控制文本的大小写

    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            div{
            background-color:blue;
            color:white;
            600px;
            height:200px;
            text-align:center;
            line-height:200px;
            }
            p{
            background-color:black;
            color:yellow;
            100px;
            height:100px;
            text-indent:50px;
            }
            h1{
            letter-spacing:20px;
            word-spacing:20px;
            text-transform:capitalize;
            }
        </style>
    </head>
    <body>
        <h1>seven eric alex nick</h1>
        <div>大家好才是真的好,你好我也好,吃我一枪,想要牌吗,容我考虑考虑,变变变</div>
        <p>大家好才是真的好,你好我也好,吃我一枪,想要牌吗,容我考虑考虑,变变变</p>
    
    </body>
    
    • capitalize 文本中的每个单词以大写字母开头
    • uppercase 定义仅有大写字母
    • lowercase  定义仅有小写字母

     text-overflow:文本移出样式

    • clip 修剪文本
    • elipsis 显示省略符号...来代表被修剪的文本
    • string  使用给定的字符串来代表被修剪的文本

    文本溢出修剪:

    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            div{
            background-color:black;
            color:white;
            50px;
            height:50px;
            white-space:nowrap;
            overflow:hidden;
            text-overflow:ellipsis;
            }
        </style>
    </head>
    <body>
        <div>大家好才是真的好,你好我也好,吃我一枪,想要牌吗,容我考虑考虑,变变变</div>
    </body>
    

      text-decoration:文本的装饰--none(默认)、underline、overline、line-through

      text-shadow:文本阴影

    • 第一个参数是左右位置
    • 第二个参数是上下位置
    • 第三个位置时虚化效果
    • 第四个参数是颜色

      word-wrap:自动换行--break-word

    自动换行并加阴影

    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            div{
            background-color:blue;
            color:white;
            100px;
            height:100px;
            box-shadow:10px 10px 5px green;
            word-wrap:break-word;
            }
            h1{
            text-shadow:5px 5px 5px #888;
            }
        </style>
    </head>
    <body>
        <h1>seven</h1>
        <div>大家好才是真的好,你好我也好,吃我一枪,想要牌吗,容我考虑考虑,变变变</div>
    </body>
    

      4、背景属性

      background-color:背景颜色

      background-image:设置背景图片

    • url("http://pic.cnblogs.com/avatar/942693/20160613182316.png")图片地址
    • background-image:linear-gradient(green,blue,yellow,red,black); 颜色渐变效果
         div{
            height:500px;
            500px;
            background-image:url("1.jpg");
            background-image:url("http://pic.cnblogs.com/avatar/942693/20160613182316.png");
            background-image:linear-gradient(green,blue,yellow,red,black)
            }
    

       background-position:设置背景图像的位置坐标

    • background-position:center center;图片置中,x轴center,y轴center
    • 1px-195px  截取图片某部分,分别代表坐标x,y轴

      background-repeat:设置背景图片不重复平铺

    • no-repeat 设置图片不重复,常用
    • round 自动缩放直到适应并填充整个容器
    • space  以相同的间距平铺且填充满整个容器

      background-size

    • contain

    • cover

      background-attachment 背景图片是否固定或随着页面的其余部分滚动

      background 缩写

        <style>
            div{
            height:1000px;
            1000px;
            border:5px red solid;
            background:url("1.jpg") no-repeat left 30px bottom 15px;
            background:url("1.jpg") no-repeat center bottom 15px;
            }
        </style>
    

      5、列表属性

      list-style-type:列表项标志的类型

    • none  去除标志
    • decimal-leading-zero  02
    • square  方框
    • circle  空心圆
    • upper-alph或disc  实心圆

      list-style-image:将图像设置为列表项标志

      list-style-position:列表项标志的位置

    • inside
    • outside

      list-style 简写

        <ul style="list-style:none">
            <li>alex</li>
            <li>seven</li>
            <li>eric</li>
        </ul>
    

      页面布局

      1、边框

      border-style:边框样式

    • solid 默认,实线
    • double 双线
    • dotted 点状线条
    • dashed 虚线

      border-color:边框颜色

      border-边框宽度

      border-radius:圆角

    • 1个参数:四个角都应用
    • 2个参数:第一个参数应用于左上、右下;第二个参数应用于左下、右上
    • 3个参数:第一个参数应用于左上;第二个参数应用于左下、右上;第三个参数应用于右下
    • 4个参数:左上、右上、右下、左下(顺手针)

      border 简写

    • border:2px yellow solid

      box-shadow:边框阴影

    • 第一个参数是左右位置
    • 第二个参数是上下位置
    • 第三个参数是虚化效果
    • 第四个参数是颜色
    • box-shadow:10px 10px 5px #888

    点赞提醒

    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            div{
            border:2px solid;
            border-radius:25px;
            140px
            }
        </style>
    </head>
    <body>
        <div> 点赞哦!dear</div>
    </body>
    

     画圆角

    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            .rrrr1{
            display:inline-block;
            height:100px;
            100px;
            background:green;
            border-radius:20px 40px;
            }
            .r2{
            display:inline-block;
            height:100px;
            100px;
            background:yellow;
            border-radius:20px 30px 50px 70px
            }
        </style>
    </head>
    <body>
        <div class="rrrr1"></div>
        <div class="r2"></div>
    </body>
    

      2、盒子模型

    一个标准的盒子模型:

    • padding:用于控制内容与边框之间的距离
    • margin:用于控制元素与元素之间的距离
    • 一参四边,两参上下、左右,三参上、左右、下

    内盒子移动到中间

    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            .father{
            300px;
            height:300px;
            background:green;
            border:5px solid
            }
            .son{
            100px;
            height:100px;
            background:red;
            margin:100px;
            }
        </style>
    </head>
    <body>
        <div class="father">
            <div class="son">
            </div>
        </div>
    </body>
    

     外盒子扩展

    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            .father{
            300px;
            height:300px;
            background:green;
            padding-left:200px;
            padding-top:200px;
            }
            .son{
            100px;
            height:100px;
            background:red;
            }
        </style>
    </head>
    <body>
        <div class="father">
            <div class="son">
            </div>
        </div>
    </body>
    
    边框在默认情况下会定位于浏览器窗口的左上角,但是并没有紧贴着浏览器的窗口的边框,这是因为body本身也是一个盒子,外层还有html,
    在默认情况下,body距离html会有若干像素的margin,所以body中的盒子不会紧贴浏览器窗口的边框了。
    
    解决方法:
    body {
        margin: 0;
    }
    

       3、display

    • none 不显示
    • block 显示为块级元素
    • inline 显示为内联元素
    • inline-block 行内块元素(会保持块元素的高宽)
    • list-item 显示为列表元素

      4、visibility

    • visible 元素可见
    • hidden 元素不可见
    • collapse 当再表格元素中使用时,此值可删除一行或一列,不会影响表格的布局

      5、float 浮动-让一行显示两个块级标签,会脱离文档流

      首先要知道,div是块级元素,在页面中独占一行,自上而下排列,也就是传说的流。

      无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div元素”。浮动可以理解为让某个div元素脱离标准流,漂浮在标准流之上,和标准流不是一个层次。

    • none
    • left 左浮动
    • right 右浮动
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            .div1{
            background:red;
            height:50px;
            100px;
            }
            .div2{
            background:blue;
            height:120px;
            150px;
            float:left;
            }
            .div3{
            background:green;
            height:100px;
            300px;
            float:left;
            }
            .div4{
            background:yellow;
            height:160px;
            150px;
            }
        </style>
    </head>
    <body>
        <div class="div1"></div>
        <div class="div2"></div>
        <div class="div3"></div>
        <div class="div4"></div>
    </body>
    

      结论:假如某个div元素A是浮动的,如果A元素上一个元素也是浮动的,那么A元素会跟随在上一个元素的后边(如果一行放不下这两个元素,那么A元素会被挤到下一行);如果A元素上一个元素是标准流中的元素,那么A的相对垂直位置不会改变,也就是A的顶部总和上一个元素的底部对齐。

      div的顺序是HTML代码中div顺序决定的

      靠近页面边缘的一端是前,远离页面边缘的一端是后

     clear 清除浮动可以理解为打破横向排列:

    • none:默认值,允许两边都可以有浮动对象
    • left:不允许左边有浮动对象
    • right:不允许右边有浮动对象
    • both:不允许两边有浮动对象
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            .div1{
            background:red;
            height:50px;
            100px;
            }
            .div2{
            background:blue;
            height:120px;
            150px;
            float:right;
            }
            .div3{
            background:green;
            height:100px;
            300px;
            float:right;
            clear:right;
            }
            .div4{
            background:yellow;
            height:250px;
            150px;
            }
        </style>
    </head>
    <body>
        <div class="div1"></div>
        <div class="div2"></div>
        <div class="div3"></div>
        <div class="div4"></div>
    </body>
    

      6、overflow 设置当对象的内容超过其指定高度及宽度时如何显示内容

    • visible 默认,内容不被修剪,会呈现在元素框之外
    • hidden 内容会被修剪,并且其余内容是不可见的
    • scroll 内容会修剪,但是浏览器会显示滚动条以便查看其余的内容
    • auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容

      7、position 规定元素的定位类型

    • static 默认值,没有定位,遵从正常的文档流
    • relative 相对定位元素,相对于其正常位置进行定位,遵从正常的文档流
    • absolute 绝对定位元素,脱离正常文档流
    • fixed  绝对定位元素,固定在浏览器某处
    <head>
        <meta charset="UTF-8">
        <title>你好明天</title>
        <style>
            .div1{
            background:red;
            height:50px;
            100px;
            }
            .div4{
            background:blue;
            height:4000px;
            6000px;
            }
            .div3{
            background:green;
            height:100px;
            300px;
            position:absolute;
            left:100px;
            top:100px;
            }
            .div2{
            background:yellow;
            height:50px;
            50px;
            font:red;
            float:right;
            position:fixed;
            }
            .father{
            position:relative;
            }
            body{
            margin:0px;
            }
            .div5{
            height:100px;
            100px;
            background:black;
            }
        </style>
    </head>
    <body>
        <div class="father">
            <div class="div1"></div>
            <div class="div2">qq交谈</div>
            <div class="div3"></div>
            <div class="div4"></div>
            <div class="div5"></div>
        </div>
    </body>
    

      详见:http://www.cnblogs.com/suoning/p/5625582.html

  • 相关阅读:
    Poj 1742 Coins(多重背包)
    Poj 2350 Above Average(精度控制)
    求二进制数中1的个数
    Poj 1659 Distance on Chessboard(国际象棋的走子规则)
    Poj 2411 Mondriaan's Dream(压缩矩阵DP)
    Poj 2136 Vertical Histogram(打印垂直直方图)
    Poj 1401 Factorial(计算N!尾数0的个数——质因数分解)
    poj 2390 Bank Interest(计算本利和)
    Poj 2533 Longest Ordered Subsequence(LIS)
    Poj 1887 Testing the CATCHER(LIS)
  • 原文地址:https://www.cnblogs.com/xinsiwei18/p/5722029.html
Copyright © 2020-2023  润新知