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

原文地址:https://www.cnblogs.com/xinsiwei18/p/5722029.html