CSS

时间:2019-03-14
本文章向大家介绍CSS,主要包括CSS使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

CSS的引入方式

行内引入

在标签内直接写style

head内写入

<style>
    div {                     # div为已经写在body里的div
    background-color: blue;
    height: 50px
}
</style>
示例

外部链接

<link rel="stylesheet" href="index.css">       将内容写在文件中,用link标签引入

优先级:

行内 > head内 = 外部链接 (写在head里和外部链接没有优先级之分)

选择器

标签选择器      通过标签名直接选择到所有的标签,实际应用场景很少

id选择器          通过#id值选择到对应的id,具有唯一性,且优先级高于标签选择器

类选择器         通过.类名选择到对应的一类标签,不具备唯一性,且优先级高于标签选择器

通配符选择器  通过*选择到页面上所有的标签,实际应用场景也比较少

优先级:

id选择器 > 类选择器 > 标签选择器 > 通配符选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div {
            background-color: blue;
            height: 50px
        }
        #red {
            background-color: red;
        }
        #cheng {
            background-color: orange;
        }
        .sky {
            background-color: lightblue;
        }
        * {
            background-color: gray;
        }

    </style>
</head>
<body>
<div id="red"></div>
<div id="cheng"></div>
<div class="sky" id="lv"></div>
<div class="sky" id="4"></div>
<div class="sky" id="5"></div>
</body>
</html>

后代选择器 通过至少一个空格,实现后代选择器的效果 包括所有的子代和孙代

子代选择器 通过>找到所有的子代,不包括孙代

兄弟选择器 通过~找到所有同级别的指定标签 就算中间被隔断也不影响

毗邻选择器 通过+找到最近的向下相邻的指定标签

属性选择器 通过标签[属性="值"]找到对应的内容进行设置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*div p {*/
            /*background-color: rgb(243,208,177);*/
        /*}*/
        .xingfense p{
            background-color: rgb(243,208,177);
        }
        .xingfense > p {
            background-color: red;
        }
        .xingfense > div ~ p {
            background-color: yellow;
        }
        .xingfense > div + p{
            background-color: green;
        }

    </style>
</head>
<body>
<div class="xingfense">
    <div>
        <p>1</p>
    </div>
    <p>2</p>
    <p>2</p>
    <p>2</p>
    <p>2</p>
</div>
<div>
    <div>
        <p>1</p>
    </div>
</div>
</body>
</html>

组合选择器: 仅仅通过逗号来组合起多个选择器,目的是为了重用一些共有的CSS属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div,p,#h11,div p {
            background-color: red;
            height: 50px;
        }
        p{
            height: 100px;
        }
        h1{                      # id选择器优先级高,不会改变第一个h1的设置
            height: 80px;         
            background-color: yellow;
        }
    </style>
</head>
<body>
<div>

</div>
<p></p>
<h1 id="h11">666</h1>
<h1>666</h1>
<h1>666</h1>
<div>
    <p>777</p>
</div>
</body>
</html>

选择器优先级:

行内>id>类>标签>通配符

后代选择器因为选择的范围比较模糊,要低于选择精准的选择器

模糊度越高优先级越低

标准文档流

空白折叠现象 自带换行

要去除空格,把代码中的空白区域删除掉

不同类型的行内元素或者行内块元素,对应的基准线不一致

字体属性

font-family:设置不同类型的字体,宋体,微软雅黑之类的

font-size:设置字体的大小,单位是像素 浏览器默认大小是16px

font-weight:字体宽度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p{
            font-family: 楷体;            # 字体
            font-size: 16px;              # 大小
            font-weight:normal;           # 粗细
            font-weight:900;              # 也可以通过值设置
        }
    </style>
</head>
<body>
<p>CSS将网页内容和显示样式进行分离,提高了显示功能。</p>
</body>
</html>

颜色相关

字体颜色用color

背景颜色用background-color

颜色的设置:

  命名法

  rgb(255,255,255)

  #16进制写法

  rgba(255,255,255,透明度) 透明度:1是完全不透明 0是完全透明

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{
            color: red;
            background-color: rgba(255,0,0,0.4);
        }
        div{
            height: 50px;
        }
    </style>

</head>
<body>
hkdaakljad
<div>dsakdadas</div>

</body>
</html>

文本样式

对齐方式       text-align居中  left左对齐  center居中  right右对齐

首行缩进

text-indent    单位是px,也可以是em字符,em是一个相对单位,相对于字体的大小

单词之间的间距:

word-spacing      单位px;

letter-spacing      中文之间的字间距,设置值可以使px或者em

大小写转换

text-transform         lowercase小写  uppercase大写  capitalize首字母大写

文本的装饰

text-decoration          none清除a标签自带的下划线       line-through中划线(划掉原价)

文本的方向

direction:rtl   ltr

跟文本的对其方式没有区别

需要设置unicode-bidi: bidi-override,两个属性一起使用就能实现文本的方向的改变,默认是从左到右,还可改变为从右到左

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p {
            text-align: left;
            font-size: 20px;
            text-indent: 2em;
            word-spacing: 100px;
            letter-spacing: 1em;
            text-transform: capitalize;

        }
        a {
            text-decoration: none;
        }

        #yuanjia {
            text-decoration: line-through;
            color: gray;
        }
        div p{
            direction: rtl;
            unicode-bidi: bidi-override;
        }

    </style>
</head>
<body>
<p>
    hello world
    层叠样式表从审美的角度负责页面样式
</p>
<a href="www.baidu.com">点我到百度</a>
<div>
    <p>abc</p>
</div>
<span id="yuanjia">399</span>
</body>
</html>

宽高

宽高只能给行级标签设置,给行内标签设置不起作用,可以给行内块标签设置

给文本类或者行内标签类的元素设置垂直居中,可以利用line-hight来设置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p {
            /*height: 50px;*/
            line-height: 50px;
        }
        span {
            height: 50px;
            background-color: red;
            width:200px;
            line-height: 100px;
        }
    </style>
</head>
<body>
<p>文本的高度</p>
<span>文本的高度</span>

</body>
</html>

diaplay属性

行级标签变形为行内标签在行级标签里设置display:inline

行内标签变形为行级标签在行内标签里设置display:block

行级标签或者行内标签变形为行内块标签:display:inline-block

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div {
            /*height: 100px;*/
            background-color: yellow;
            /*display: inline;*/
        }
        span {
            height: 30px;
            background-color: black;
            /*width: 50px;*/
            display: block;
            /*float: right;*/

        }
    </style>
</head>
<body>
<div>
    <span></span><span></span>
</div>

</body>
</html>

背景相关

background-image:url(图片的路径);

background-repeat:图片是否铺满等操作;

background-position:相对于左上角的点,往右平移是正直,往下平移也是正值,否则相反

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div {
            width: 50%;
            height: 100px;
            background-image: url(bd.png);
            background-repeat: no-repeat;
            background-position: -50px -100px;
            background-color: pink;
        }
        </style>
</head>
<body>
<div>
    
</div>
</body>
</html>

伪类选择器

爱恨准则   LoVe HAte

link 链接在页面中显示的颜色

visited 点击完之后显示的颜色

hover 鼠标放在链接上时显示的颜色 不单单可以给a标签使用,也可以用在提交按钮上

active 点击时显示的颜色

focus 光标点击时显示的样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        a:link {
            color: black;
        }
        a:visited {
            color: yellow;
        }
        a:hover {
            color: deeppink;
        }
        a:active{
            color: aqua;
        }
        #h:hover {
            color: red;
        }
    </style>
</head>
<body>

<a href="www.baidu,com">百度一下,你就知道</a>
<br>
<a href="www.baidu,com">百度一下,你就知道</a>
<br>
<a href="www.baidu,com">百度一下,你就知道</a>
<br>
<a href="www.baidu,com">百度一下,你就知道</a>
<input type="submit" id="h">
<span>dhahkasdh</span>
</body>
</html>

伪元素选择器

before,在元素之前添加一些内容

after,在元素之后添加一些内容

first-letter,对首字母进行操作

first-line,对首行进行一些操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div:first-letter {
            color: aqua;
            font-size: 20px;
        }

        div:before {
            content: "刚刚";
        }

        div:after {
            content: "不会再来了";
        }
        div:first-l