首页 > 作文

CSS基础及用法

更新时间:2023-04-03 19:08:50 阅读: 评论:0

前言

对于一个网页来说,css是网页的门面,对于一个前端初学者来说,css更是他们必经之路,通过这篇文章我就来带大家好好认识一下css吧!

目录

前言拓展1).页面元素分类:(1).块元素(用于搭建页面结构)(2).行内元素(用于内容填充)(3).功能元素(不能搭建网页)正文1.定义2.语法(1).引入(2).语法组成(3).选择器1).核心选择器2).层次选择器3).伪类选择器4).伪元素选择器【过滤器】5).属性选择器【过滤器】(主要用于表单)3.选择器的优先级优先级比较方式:(1) 特权(2) 权值4.单位1).绝对单位2.)相对单位5.用法规则1).文本规则1).居中2).修饰文本2).字体规则3).实体规则4).背景规则5).动画、过渡、变形1)动画:通过设置关键帧使得页面变化2)过渡(从一种状态到另一种状态)3)变形(一般要与过渡或者动画一起使用,不然就是瞬间变化)5).其他规则总结

拓展

在学习css之前,我们首先要清楚页面元素。

1).页面元素分类:

(1).块元素(用于搭建页面结构)

特点:默认宽100%父,高包裹内容,独占一行。
例如:div(无意义的块元素,不知道使用哪个块元素的时候使用)
html、body、head、h1~h6、p、ul(无序,…)、ol(有序,123) 、li、dl>dt(dl为自定义列表,
dt为标题,dd为列表项(看起来是这样…,其实两者没有区别,可以通过css
把dd的内边距去掉即与dt相同))、dl>dd、H5新增的语义化标签(与div相比,
div没有语义,而语义化标签能方便阅读理解):content、header、article…

(2).行内元素(用于内容填充)

特点:不能通过css为其指定宽高。宽高由自身来决定。与其他行内元素共享一行空间。
例如: span、a(超链接 href 相对地址 当前目录: . 上级目录:…)、H5过期的语义化标签(依旧能
使用):i(斜体样式)、em(强调)、strong(加粗)、video、audio、img

(3).功能元素(不能搭建网页)

table:表格,用于展现列表数据,层次结构,自动换行。
form:收集用户数据,与后端交互
iframe:将一个页面嵌入当前页面中。

正文

1.定义

css又称作重叠样式表,它主要用于对网页中的元素进行精准控制及修改,实现对网页内对象的编辑和处理。

2.语法

(1).引入

1).将css规则直接写在style中 (耦合性太高,不好,现在多追求高内聚,低耦合)

<div style="background-color: blue;"></div> <!--直接写在标签中,效果为块元素的背景色为蓝色-->       

2).将样式嵌入到style标签中 (样式和html还是没有分开,当样式过多,就会复杂起来)

<head> <style> div{            background-color: blue;        } </style> </head>  <body>    <div>--将css规则直接写在style中,效果为所有div元素的背景色为蓝色--</div> </body>

3).将样式写在.css文件中,再通过link引入
link.css文件:

div{    background-color: blue;}

html文件:

<link rel="stylesheet" href="link.css">   <!--外链引入-->

(2).语法组成

选择器:
{
属性:值;

属性:值;
}

(3).选择器

1).核心选择器

类选择器:.类名{}
注:不同的html元素class值可以重复,即一个类选择器可以被重复使用

<head> <style> .uls        {                        background-color: burlywood;        }</style></head><body><p class="uls"></p>        <div class="uls"></div></body>

标签选择器(元素选择器): 标签名{}
注:所有的该标签都会被选择,范围太大,不具体. 如div{}、p{}等等

<head> <style> div        {                        background-color: burlywood;        }</style></head><body><div>1</div>      <div>2</div></body>

id选择器(优先级高于类选择器):#id{}
注:一个id选择器只能被使用一次

<head> <style> #box        {                        background-color: burlywood;        }</style></head><body><div id="box">1</div>      </body>

组合选择器:div,p{}
注:所有的div标签和p标签都被选择了

<head> <style> div,p        {                        background-color: burlywood;        }</style></head><body><p>1</p>      <div>2</div><p>3</p></body>

并且选择器:div.box{}
注:标签为div且class为box

<head> <style> div.box        {                        background-color: burlywood;        }</style></head><body><div class="box">1</div>      <div>2</div></body>

普遍选择器: *{}
注:页面中所有的标签都选上

补充:关于css的命名规则,大家可以去下面的链接学习
命名规则

2).层次选择器

父子选择器:用于找到子元素,满足条件的子元素都会被选择,并不是找到第一个以后就停止不找了。

格式:父 > 子
例:ul>li{} 、 .var>li{} 、 .var>#ls{} .var> *{}

后代选择器:用于找到后代元素,父子选择器里面只找到儿子就行了,后代选择器则是满足条件的儿子的儿子…的 儿子也会找到
格式:父 后代 //中间是空格
例:ul li{} //多重嵌套的li也能找到

<ul>        <li class="first">            <ul&g企业经营性质t;                <li></li>                <li></li>            </ul>        </li>        <li class="cond">        </li>    </ul>        <!-- 对于父子选择器 ul>li: 他只能找到类名为first和cond的li         而对于后代选择器ul li,他还能找到类名为first的li下面的所有li-->

下一个兄弟选择器(直接兄弟选择器): 兄弟就是跟他有同一父元素的元素

格式:p + *{} //不管p后面是什么都会选择
p + a{} //如果下一个是a标签,会选择,否则不会选择
注:只会看他的下一个兄弟,不管他是否满足条件都不会继续向后寻找

之后所有兄弟选择器
p ~ *{} //选择p后面所有的兄弟

3).伪类选择器

含义:过滤器,在已经选择到的元素上再进一步筛选
格式(列举的为常用的):
1.锚伪类选择器
元素:状态{} //当元素的状态改变为设置的状态时,进行{}里面的操作。

   a:link {color:blue;} //未访问时该链接的字体颜色为blue   a:active{color:#99999;}//鼠标点击时该链接的字体颜色为#999999北大研究生宿舍   a:hover{color:#666666;}//鼠标停留在该链接时的字体颜色为#666666   a:visited{color:#333333;}//该链接被访问时的字体颜色为#333333

2.nth选择器

     ul > li:first-child {} //选择ul下的第一个li     ul> li:nth-child(3) {} //选择第三个li    ul> li:nth-child(2n+1) {} //n从0开始每次加1,有几个li则n最大为几。 如果有四个li,则会选择第1,3个li
4).伪元素选择器【过滤器】

格式:元素::位置{}
例:
div::first-letter{} //选中元素的第一个字;
div::first-line{} //选中元素第一行;
div::lection{} //选中被选择的文本元素
div::before{content:“hello”} //在元素的首位添加内容 hello
div::after{content:“world”} //在元素内的末尾添加内容,常用于在内部元素浮动后导致块元素高度为0的问题,这个会在后面讲到。

<head> <style> div.box::first-letter{            font-size: 20px;            color: blue;        }         div.box::first-line{            font-size: 20px;        }         div.box::lection{            color: red;        }         div::before{            content:"hello"        }         div::after{            content:"world"        }    </style></head><body>    <div class="box">伪元素的使用</div></body>

效果:
鼠标选中了“的使用”

5).属性选择器【过滤器】(主要用于表单)
        ul>li[class = ls]{} //选择ul下的li中类为ls的li元素            name*=e秦九韶公式,包含e            name^=e 以e开头           name$=e,以e结尾         等等很多种筛选方式。                

3.选择器的优先级

解释:有时候,我们写了几个不同的选择器,但是他们都对同一标签的一个属性进行了赋值,这时就涉及到了优先级的问题,谁的优先级大听谁的。

例如:

<head> <style> div.box{            color: blue;        }        div{            color: red;        }    </style></head><body>    <div class="box">优先级</div></body

效果:

优先级比较方式:

(1) 特权

!important //例如: color: #333 !important ;
注:当一个属性被赋予特权后,相当于优先级达到最高

(2) 权值

style属性(直接写在标签里的) 1000
#id 100
class、伪类选择器 10
标签选择器 1

在上面的例子中,div.box选择器的优先级:1+10=11,div选择器的优先级:1,所以color的属性值有div.box选择器决定

注:如果一样大,则后者覆盖前者

4.单位

1).绝对单位
    px
2.)相对单位

em, em是相对于当前元素的字体大小 .3em 表示 0.3个em
rem,rem相对于html元素的字体大小

<head> <style> html{            font-size: 20px;        }        div{            color: #ffffff;            background-color: crimson;            margin-bottom: 1px;            padding: 1em;  /* 内边距的距离为1字体大小 box1为10px box2为20px,box3为10px */        }        .box1{            font-size: 10px;        }        .box2{            font-size: 20px;        }        .box3{            font-size: 10px;            /* .box3优先级大于div选择器,内边距改为 html中的1字体单位 20px */            padding: 1rem;           }    </style></head><body>    <div class="box1">hello</div>    <div class="box2">hello</div>    <div class="box3">hello</div></body>

5.用法规则

针对于块元素内部的元素,具有可继承性,即给块元素施加规则以后,他的后代元素都能继承这个规则

1).文本规则

用途

1).居中
text-align:conter; //使块元素的内容居中vertical-align:middle(垂直居中); //调整行内元素或者表格单元格的垂直对齐方式line-align:xpx  //通过指定行高使得内容垂直居中
2).修饰文本
overflow:hidden; //隐藏溢出的内容visible(默认) ; //显示溢出的内容scroll; //溢出的内容通过滚动条可以访问overflow-x、overflow-y:分别在x和y轴上   隐藏内容text-decoration: //文本装饰         none 文本装饰为空   text-decoration-line://线的内容    line-through 将一条线覆盖在字体中间text-decoration-style://线的类型  solid 实线text-indent: xem //首段x个像素缩进text-transform:  //大小写转换
<head> <style> span.span1{            background-color: blanchedalmond;        }        /* overflow 对溢出的内容进行处理 */        .overflow{            width: 200px;            height: 100px;            border: 1px solid #333333;            overflow: scroll;        }        .overflowson{            width: 600px;            height: 400px;                       background-color: crimson;        }    </style></head><body>    <!-- 内容居中 -->    <div style="text-align: center;">    <span class="span1"> 123</span>    </div>    <!-- 文本垂直居中 -->        <div  style="line-height: 53px; background-color: blue; ">    <span>234</span>    </d飞夺泸定桥的故事简介iv>    <div class="overflow">        <div class="overflowson">            <span></span>        </div>        <!--文本装饰 -->    <div>    <a href="" style="text-decoration-line: line-through; ">文本装饰</a>    </div></body>

2).字体规则

用途:对盒子内容进行修饰

font-family: //字体样式font: font-size/line-height font-family; 例: 12px/1.5 (字体为12px,行高为字体的1.5倍) , '微软雅黑'...;font-weight(加粗):normal/bold;     //可以写数字(100-900)或者bold,一般用boldfont-style(是否斜体):normal/italic;color://字体颜色

速写形式

font:normal normal 12px/1.5 "微软雅黑" //font-style、font-weight、font-size、line-height、font-family //前两个可以缺省,即不写

3).实体规则

&nbsp; //表示空格&lt;   //表示<&gt;   //表示>

4).背景规则

background(速写形式):url()  background-color:background-image:url();                 linear-gradient(Green,Yellow); //渐变色                 radial-gradient(Green,Yellow); //镜像background-position(背景图片的位置)background-repeat:norepeat(背景图片不重复)background-size(指定背景图片的大小,为了不变形,一般等比例):auto(图片原来的大小)、containbackground-clip(裁切):padding-box(边框的不要,从内容开始裁)background-origin(铺的起点) border-box(从边框开始) content-box(从内容区开始铺)

5).动画、过渡、变形

1)动画:通过设置关键帧使得页面变化
<head> <style> html,body{            padding: 0px;            margin: 0px;        }        div.container{            height: 1000px;        }        div.box{            width: 100px;            height: 100px;            background-color: blue;            border-radius: 50队名和口号%;             position: absolute;            /* 使用动画 */            /* 指定使用的动画的名字 */            animation-name: move;            /* 运动的时间,可以是毫秒或秒 */            animation-duration: 3s;            /* 运动曲线 */            animation-timing-function: linear;   /*匀速*/            /* 运行按步数执行 */            animation-timing-function: steps(4);            /* 动画循环的方式 */            animation-direction: alternate; /*来回运行*/                        /* 动画执行次数 */            animation-iteration-count: 3;            /* animation-iteration-count: infinite; 永远 */            /* 动画运行完成后的状态 */            animation-fill-mode: forwards;  /*最后一帧前的状态*/            /* animation-fill-mode: backwards; 最后一帧后的状态 */                        /* 开始的延迟 */            animation-delay: 1s;        }        .box:hover{            /* 动画的状态 */            animation-play-state: paud;        }        /* 定义关键帧 */        @keyframes move {            from{                margin-left: 300px;                            }to{                margin-left: 1000px;                margin-top: 300px;            }        }     </style></head><body>    <div class="container">        <div class="box"></div>    </div></body>
2)过渡(从一种状态到另一种状态)
    1.更加简单的动画,没有动画帧    2.需要触发:如:hover           transition:all 2s delay timing(速写形式)  后两个可以省略        /* 需要过渡的属性 */        transition-property: all;        /* 变化时长 */        transition-duration: 2s;        /* 变化方式 */        transition-timing-function: linear;        /* 延迟时间 */        transition-delay:0s
3)变形(一般要与过渡或者动画一起使用,不然就是瞬间变化)
    transform-origin: 10px 20px //指定元素变形的点    transform-scale(2) //放大的倍数(宽和高都放大两倍)    transform-rotate(45deg) //旋转45°    transform-skewX(45deg) //对X方向不变,沿着Y方向旋转45度,(即逆时针旋转45°)    transform-translateX(200px) //沿着x轴平移200px

例:(过渡加变形)

<head> <style> div{            margin: 0px;            border: 5px solid #cccccc;            border-radius: 50%;         }        div.outer{            margin-left: 500px;            margin-top: 100px;            box-sizing: border-box;            width: 200px;            height: 200px;            padding: 20px;                        /* 发生变化的属性 */            transition-property: all;            /* 变化时长 */            transition-duration: 2s;            /* 变化方式 */            transition-timing-function: linear;           }        div.outer>div.inter{            box-sizing: border-box;            height: 100%;        }        div.outer:hover{            background-image: url(图片的地址);            transform: rotate(360deg);            padding: 40px;        }    </style></head><body>    <div class="outer">        <div class="inter"></div>    </div></body>

5).其他规则

display:inline-block; //变为行内块元素,有行和块的特点 即不独占一行且可以指定宽高        bolck; //使该元素变为块元素        inline;//使该元素变为行内元素       opacity:.3//透明度 0-1

列表样式:list-style:none;
表格样式: border-collap:collap; //当td添加边框,加在table上,可以合并隔壁的边框

总结

关于css的规则还有很多很多…,本人目前水平有限,见谅。

本文地址:https://blog.csdn.net/qq_40548854/article/details/107573806

本文发布于:2023-04-03 19:08:47,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/571e568dd790613b206b8a7c61939ba6.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:CSS基础及用法.doc

本文 PDF 下载地址:CSS基础及用法.pdf

标签:元素   选择器   优先级   规则
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图