前端之CSS

2021-02-05 22:17

阅读:404

标签:背景图   indent   文档   式表   repeat   for   com   normal   sof   

1. CSS概述

我们在写好了html标签之后,需要定位到这些标签,然后对这些作出对应的色彩、样式的渲染,才能呈现出美观的效果。

那么,这些内容就是css所要完成的事情了。

2. 四种CSS代码的引入方式

DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>Titletitle>
    
    
    link href="test1.css" rel="stylesheet">
    
    style>
        @import "test2.css"; /* 这样会出现短暂的无渲染的html框架,然后再出现css渲染 */
    style>
    
    style>
        p{
            color: rebeccapurple;
            font-size: 40px;
        }
        a{
            text-decoration: none;
        }
    style>
head>
body>
    
    div style="color: red;background-color: green;height: 100px">hello hgzerowzhdiv>
    a href="https://cdn.jsdelivr.net/gh/hgzerowzh/blog_website/data/image/wechat_code_money.png" target="_blank">资助一下a>
    p>shitp>
body>
html>

 

3. CSS选择器

3.1 CSS标签选择器

DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>Titletitle>
    style>
        *{
            color: red;
        }
        div{          /* 这是一个标签选择器 */
            color: yellow;
        }
        #little_p{    /* 这是一个id选择器 */
            background-color: blue;
        }
        .the_p{       /* 这里表示一个类选择器 */
            color: aqua;
        }
        div.cuihua{   /* 这种选择器表示一个名叫cuihua的div标签(找一个标签) */
            color: greenyellow;
        }
        #little_p, div.cuihua{  /* 这里表示一个多重选择器, 表示并列的关系 */
            color: rebeccapurple;
        }
        .div1 .div2{           /* 这是一个层级选择器 ,div1下面的div2标签 */
            color: darkred;
        }
        .div1>.div2{           /* 这是一个子代选择器,只找div1的子代元素标签 */
            color: #000;
        }
        .div1 + div{           /* 毗邻选择器,找div1相邻的(要紧挨着它)下一个div标签 */
            color: greenyellow;
        }
    style>
head>
body>
    div>hello divdiv>
    p id="little_p">pppp>
    p class="the_p">ppp>
    p>pp>
    a href="">a>
    div class="cuihua">翠花div>
    div class="before_div1">
        before div1
    div>
    div class="div1">
        div class="div2">
            a href="">aa>
            p>ppp>
            div>div3div>
        div>
    div>
    div class="after_div1">
        after div1
    div>
body>
html>

 

3.2 CSS属性选择器

DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>Titletitle>
    style>
        [alex]{
            color: red;
        }
        [alex=‘dsb‘]{  /* 这是一个自定义的属性选择器 */
            color: greenyellow;
        }
        p[alex=‘dsb‘]{  /* 这个属性选择器只选择alex等于dsb的p标签 */
            color: blue;
        }
        [alex~="LI"]{  /* 匹配所有alex属性具有多个空格分隔的值,其中一个值等于LI的元素 */
            color: pink;
        }
         [alex^="LI"]{  /* 匹配alex属性中以LI开头的元素(只要以LI开头就ok,不管是LIab还是LIbc都匹配) */
            color: pink;
        }
         [alex$="LI"]{  /* 匹配alex属性中以LI结尾的元素 */
            color: pink;
        }
         [alex*="LI"]{  /* 匹配alex属性中包含LI的元素(只要属性值中包含LI就ok) */
            color: pink;
        }
    style>
head>
body>
    div alex="sb">alex_sbdiv>
    div alex="dsb">alex_dsbdiv>
    p alex="dsb">这是一个p标签p>
    div alex="sb LI">alexdiv>
body>
html>

 

 

 3.3 CSS伪类选择器

DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>Titletitle>
    style>
        a:link{   /* 什么操作都不做时显示什么颜色 */
            color: red;
        }
        a:visited{  /* 这个伪类表示访问过这个a标签后显示什么颜色 */
            color: blue;
        }
        a:hover{    /* 这里表示鼠标悬浮在这个a标签上方时显示什么颜色 */
            color: green;
        }
        a:active {  /* 点击这个a标签时显示什么颜色 */
            color: yellow;
        }
        .box:hover .top{
            background-color: red;
        }
        .add:after{  /* 这个伪类会自动的将content中的内容添加到标签内容的后面 */
            content: ‘  welcome to here!‘;
            color: dodgerblue;
        }
        .add:before{  /* 这个伪类会自动的将content中的内容添加到标签内容的前面 */
            content: ‘Yeah ~ ‘;
            color: red;
        }
    style>
head>
body>
    a href="http://hgzerowzh.com">Pray の 小破站a>
    div class="box">
        div class="top">div>
        div class="bottom">div>
    div>
    div class="add">hello hgzerowzhdiv>
body>
html>

 

 

 3.4 CSS选择器的优先级

DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>Titletitle>
    style>
        .div1{
            color: rebeccapurple;
        }
        div{
            color: yellow;
        }
        #id1{
            color: lightblue;
        }
    style>
head>
body>
    div class="div1" id="id1">优先级div>
 
    
        
        
        
        
        
        
        
body>
html>

 

 

 4. CSS的背景及颜色属性

DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>Titletitle>
    style>
        p{   /* 字体属性 */
            font-size: 20px;
            font-family:"Microsoft YaHei UI";
            font-weight:lighter;
            /*设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗*/
            font-style: italic;
            /*设置字体是否倾斜,如:font-style:‘normal‘; 设置不倾斜,font-style:‘italic‘;设置文字倾斜*/
        }
        .back{ 
            width: 800px;
            height: 800px;
            background-image: url(img.jpg);   /*  默认是重复填充 */
            background-repeat:no-repeat;
            background-position: 0 250px;     /* 第一个参数是控制x轴的距离,第二个参数控制y轴的距离 */
            background-attachment: fixed;     /*  设置背景图片是固定还是随着页面滚动条滚动 */
            /*  background: #000 url("img.jpg") no-repeat 0 250px fixed;    */
        }
        span{
            display: inline-block;  /* 将内联标签变成块级标签,只有块级标签才能设置长和宽 */
            width: 18px;
            height: 20px;
            background-image: url("http://dig.chouti.com/images/icon_18_118.png?v=2.13");
            background-position: 0 -100px;
        }
    style>
head>
body>
    p>welcome to this place!p>
    
    div style="color: blue;">pppdiv>
    div style="color: #7165ff;">pppdiv>
    div style="color: rgb(255,0,0);">pppdiv>       
    div style="color: rgba(255,0,0,0.5);">pppdiv>  
    div class="back">hellodiv>
    span>span>
body>
html>

 

 

 5. CSS的文本与边框属性

DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>Titletitle>
    style>
        .div1{
            height: 100px;
            background-color:red;
            text-align: center; /* 使文本水平方向居中 */
            line-height: 100px; /* 设置行高(一行的高度) */
 
            text-indent: 150px; /* 设置首行缩进 */
 
            letter-spacing: 10px; /* 设置各个文字之间的间距 */
            word-spacing: 10px; /* 英文单词与单词之间的间距 */
            text-transform: capitalize; /* 设置各个单词的首字母大写(一般设置标题的时候用) */
        }
        .div2{
            width: 200px;
            height: 200px;
            border-color: blue;
            border-style: solid;
            border-width: 5px;  /* 设置边框的厚度 */
            border: 2px solid red;  /* 也可以直接写三个值 */ 
        }
    style>
head>
body>
    div class="div1">文本属性div>
    div class="div2">边框属性div>
body>
html>

 

 

6. CSS的列表与display属性

DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>Titletitle>
    style>
        ol,ul{
            /*list-style: lower-latin; !* 以abc...开头 *!*/
            list-style: none; /* 去掉开头的效果 */
        }
        div,p,a{
            height: 100px;   /* 只有块级标签才可以设置长和宽的属性 */
            width: 100px;
        }
        div{
            background-color: yellow;
        }
        p{
            background-color: #7165ff;
            display: inline;  /* 这里将p这个块级标签设置成行内标签 */
        }
        a{
            background-color: red;
            /*display: block;  !* 这里将a这个行内标签设置成块级标签 *!*/
            /*display: none; !* 隐藏这个标签 *!*/
            display: inline-block; /* 设置成行内块,可以设置长和宽,也可以在一行内进行横向堆叠 */
        }
    style>
head>
body>
    ol>
        li>111li>
        li>222li>
        li>333li>
    ol>
    ul>
        li>111li>
        li>222li>
        li>333li>
    ul>
    div> div div div div div divdiv>
    p>ppppppppp>
    span>span span span span span span span>
    a href="#">clicka>
body>
html>

 

 

7. CSS的内外边距和margin-top塌陷

DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>Titletitle>
    style>
        body{
            margin: 0;     /* 将浏览器自动给body设置的margin边距取消掉 */
        }
        .div1{
            width: 200px;  /* 这里的长和宽不包含边框的宽度,也不包含padding的宽度 */
            height: 200px;
            background-color: blue;
            border: 20px solid yellow;
            padding: 40px; /* 设置内边距 */
            margin: 20px;  /* 设置外边距 */
            /*margin: 10px 20px 20px 10px; !* 这里的顺序为 上,右,下,左,(顺时针方向) *!*/
        }
        .div2{
            width: 200px;
            height: 200px;
            background-color: red;
            border: 20px solid green;
        }
 
        /*边界塌陷或边界重叠:*/
            /*1.兄弟div:上面div的margin-bottom和下面div的margin-top会塌陷,也就是会取上下两者margin里最大值作为显示值*/
            
            /*2.父子div:父级div中没有border,padding,inline content,子级div中的margin会一直向上找,*/
                /*直到找到某个标签包括border,padding,inline content中的一个,然后按此div进行margin*/
    style>
head>
body>
    div class="div1">hello div1div>
    div class="div2">hello div2div>
body>
html>

 

 

8. CSS的float属性

DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>Titletitle>
    style>
        .div1{
            width: 100px;
            height: 100px;
            background-color: red;
            float: left;
            /*【注意】:当初float被设计的时候就是用来完成文本环绕的效果,所以文本不会被挡住,即float的特征,*/
            /*即float是一种不彻底的脱离文档流方式*/
        }
        .div2{
            width: 200px;
            height: 100px;
            background-color: blue;
            float: left;
            clear: left; /* 表示清除这个标签左边的浮动(这个标签的左边不能有浮动的对象,若有,则另起一行) */
            /* clear属性只会对自身起作用,而不会影响其他元素,如果一个元素的右侧有浮动的对象,而这个元素设置了不允许右边有浮动的对象 */
            /* 则这个元素会自动下移一格,达到本元素右边没有浮动对象的目的  */
        }
        .div3{
            width: 100px;
            height: 200px;
            background-color: green;
        }
        .div4{
            width: 100px;
            height: 300px;
            background-color: #7165ff;
        }
        .clearfix:after{
            content: ‘‘;
            display: block;
            clear: both;
        }
    style>
head>
body>
    
    
 
    
    
 
div class="div1">1div>
div class="div2">2div>
div class="div3 clearfix">3div>    
div style="clear: both;">div>    
div class="div4">4div>
body>
html>

 

 

9. CSS的定位

DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>Titletitle>
    style>
        .div1{
            width: 100px;
            height: 100px;
            background-color: red;
        }
        .div2 {
            width: 200px;
            height: 100px;
            background-color: blue;
            position: relative;  /* 设置为relative的定位,相对于它原本的位置进行偏移,但是它原来的在文档流中占的位置依然还在 */
            left: 100px;
            top: 100px;
        }
        .div3{
            width: 100px;
            height: 200px;
            background-color: green;
            position: absolute;
            left: 100px;
            top: 100px;
            /* 设置为绝对定位的元素从文档流中完全删除,并相对于最近的已定位的祖先元素定位,如果元素没有已定位的祖先, */
            /*那么它的位置相对于最初的包含块(即body元素)*/
        }
        .div4{
            width: 100px;
            height: 300px;
            background-color: #7165ff;
        }
        .div5{
            width: 100px;
            height: 200px;
            position: absolute; /* 因为设置了绝对定位,所以这个标签已经脱离的文档流 */
            margin-top: 30px;   /* 这时的margin定位是相对于标签最开始的位置来定位的 */
            margin-left: 120px;
        }
         .returnTop{
            width: 50px;
            height: 50px;
            background-color: red;
            position: fixed;
             /*设置了fix定位的元素脱离了正常的文档流,以窗口为参考点定位*/
             /*当出现滚动条时,对象不会随着滚动,而其层叠通过z-index属性定义*/
             bottom: 20px;
             right: 5px;
        }
        .clearfix:after{
            content: ‘‘;
            display: block;
            clear: both;
        }
    style>
head>
body>
div class="div1">1div>
div class="div2">2div>
div class="div3 clearfix">3div>
div style="clear: both;">div>
div class="div4">4div>
div class="div5">5div>


评论


亲,登录后才可以留言!