1小时学会CSS - 中

这篇具有很好参考价值的文章主要介绍了1小时学会CSS - 中。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


接第一课, 1小时学会CSS - 上,大家还记得前面说的一个概念,CSS 层叠样式吗?很多小伙伴都无法理解。

这里再详细说说,什么是CSS 层叠样式?CSS 层叠样式指的是上级标签的样式会自动继承给其所有的下级标签。

比如:在DIV标记中嵌套P标记,会自动应用到DIV下的所有P标签中,除非p标签重写了相关样式将其覆盖。

div { color: red; font-size:9pt;}
……
<div>

<p>这个段落的文字为红色9号字</p>

</div>

1小时学会CSS - 中


好了昨天的补充内容就到这里,咱们回到今天的学习主题,今天主要内容是CSS语法 和CSS选择器实践。




一、CSS语法


CSS 的定义是由三个部分构成:选择符(selector),属性(properties)和属性的取值(value)。


1、普通选择符

基本格式如下:

selector {property: value;}  

选择符 {属性:值}

选择符是可以是多种形式,一般是要定义样式的HTML标记,例如:body、p、table……,可以通过此方法定义它的属性和值,属性和值要用冒号隔开,例如:

body {color: red;}

上面代码的意思:选择符 body 是指页面主体部分,color 是控制文字颜色的属性,red是颜色的值。


1小时学会CSS - 中


此例的效果是使页面中的文字为红色:

1小时学会CSS - 中


如果属性的值是多个单词组成,必须在值上加引号,比如字体的名称经常是几个单词的组合:

body {font-family: "LiSu";}

注意:字体设置需要在css的body中设置。

1小时学会CSS - 中


如果需要对一个选择符指定多个属性时,我们使用分号将所有的属性和值分开,


段落居中排列;并且段落中的文字为红色,代码如下:
p

{ text-align: center;

color: black;

font-family: arial; }

2、组合选择符


我们还可以把相同属性和值的选择符组合起来,用逗号将选择符分开,这样可以减少样式重复定义:
h1, h2, h3, h4, h5, h6 { color: green; } 

p, table{ font-size: 9px; }

3、类选择符

类选择符能够把相同的元素分类定义不同的样式。

定义类选择符时,在自定类的名称前面加一个点号。

类选择符有两种用法,我们先看普通用法:


(1)、类选择符第一种用法

假如想要两个不同的段落,一个段落向左对齐,一个段落居中,可以这样:

p.left {text-align: left;}

p.center {text-align: center;}

然后用不在不同的段落里,只要在 HTML 标记里加入定义的 class 参数即可:

<p class="left">   <!--> 这个段落向左对齐 --> 

<p class="center">   <!--> 这个段落居中排列 --> 


1小时学会CSS - 中


注意:类的名称可以是任意英文单词或以英文开头与数字的组合,一般以其功能和效果简要命名。


(2)、类选择符另一种用法

在选择符中省略 HTML 标记名,这样可以把几个不同的元素定义成相同的样式:

.center {text-align: center;}    <!--> 定义.center的类选择符为文字居中排列--> 

这样的类可以被应用到任何元素上。例如:

<h1 class="center">    <!--> 这个标题是居中排列-->   

<p class="center"> <!--> 这个段落也是居中排列-->   

注意:这种省略 HTML 标记的类选择符是我们最常用的 CSS 方法,使用这种方法,可以很方便的在任意元素上套用预先定义好的类样式。


4、ID选择符

在HTML页面中ID参数指定了某个单一元素,ID选择符是用来对这个单一元素定义单独的样式。

和类选择符相同,定义ID选择符的属性也有两种方法。


(1)、ID选择符一种用法

定义ID选择符要在ID名称前加上一个#号。

ID选择符的应用和类选择符类似,只要把CLASS换成ID即可:

#intro

{font-size:110%;

font-weight:bold;

color:#0000ff;

background-color:transparent; } 

 <!-->字体尺寸为默认尺寸的110% 粗体 蓝色 背景颜色透明-->   


<p id="intro"> 这个字体尺寸为默认尺寸的110% 粗体 蓝色 背景颜色透明 </p>

1小时学会CSS - 中


(2)、ID选择符另一种用法

p#intro

{font-size:110%;

font-weight:bold;

color:#0000ff;

background-color:transparent; }

 

5、提升样式表的优先权

可以用!important提升样式表的优先权

例如:

p { color: #FF0000!important; }

.blue { color: #0000FF;}

#id1 { color: #FFFF00;}

我们同时对页面中的一个段落加上这三种样式,它最后会依照被 !important 申明的HTML标记选择符样式为红色文字。

如果去掉 !important,则依照优先权最高的ID选择符为黄色文字。


6、CSS 注释

CSS注释以/* 开头,以*/ 结尾,如下:

 /*  定义段落样式表 */
 
 p

{

text-align: center; /* 文本居中排列 */

color: black; /* 文字为黑色 */

font-family: arial; /* 字体为arial */

}

二、CSS选择器实践

CSS 选择器规定了 CSS 规则会被应用到哪些元素上。

严格来说,选择器的种类可以分为三种:标签名选择器(比如 div)、类选择器(比如.tweet) 和ID选择器(比如 #header)。而所谓的后代选择器和群组选择器只不过是对前三种选择器的扩展应用。而人们将上面这几种方式结合在一起,所以就有了5种或6种选择器了。


CSS 选择器效率从高到低的排序如下:

选择器 用法
id选择器 #myid
类选择器 .myclassname
标签选择器 div,h1,p
相邻选择器 h1+p
子选择器 ul > li
后代选择器 li a
通配符选择器 *
属性选择器 a[rel=“external”]
伪类选择器 a:hover, li:nth-child

1、选择器的优先级规定

一般而言,选择器越特殊,它的优先级越高。

也就是选择器指向的越准确,它的优先级就越高。

用1表示标签名选择器的优先级

用10表示类选择器的优先级

用 100 标示 ID选择器的优先级

例如选择器:

.polaris span {color:red;}

这个选择器优先级是 10 + 1 也就是11

.polaris 的优先级是10,浏览器自然会显示红色的字。


2、使用不同选择器的原则

  • 准确的选到要控制的标签

  • 使用最合理优先级的选择器

  • HTML 和 CSS 代码尽量简洁美观,通常:

    ①最常用的选择器是类选择器

    ②li、td、dd等经常大量连续出现,并且样式相同或者相类似的标签,我们采用类选择器跟标签名选择器结合的后代选择器 .xx li/td/dd {} 的方式选择。

    ③极少的情况下会用 ID 选择器,当然很多前端开发人员喜欢 header,footer,banner,conntent 设置成 ID 选择器的,因为相同的样式在一个页面里不可能有第二次。


3、怎么提升CSS选择器性能?

(1)、避免使用通用选择器

.content {color: red;}

因为浏览器匹配文档中所有的元素后分别向上逐级匹配 class 为 content 的元素,直到文档的根节点。因此其匹配开销非常大,所以应避免使用关键选择器是通配选择器的情况。


(2)、避免使用标签或 class 选择器限制 id 选择器

避免使用
button#backButton {…}

避免使用
.menu-left#newMenuIcon {…}

推荐使用
#backButton {…}

推荐使用
#newMenuIcon {…}


(3)、避免使用标签限制 class 选择器

避免使用
treecell.indented {…}

推荐使用
.treecell-indented {…}

最优使用
.hierarchy-deep {…}

(4)、避免使用多层标签选择器。使用 class 选择器替换,减少 css 查找

避免使用
treeitem[mailfolder="true"] > treerow > treecell {…}

推荐使用
.treecell-mailfolder {…}

(5)、避免使用子选择器

避免使用

treehead treerow treecell {…}
BETTER, BUT STILL BAD 
treehead > treerow > treecell {…}


推荐使用
.treecell-header {…}

(6)、使用继承

避免使用

#bookmarkMenuItem > .menu-left { list-style-image: url(blah) }

推荐使用

#bookmarkMenuItem { list-style-image: url(blah) }

4 、使用简洁、高效的CSS

所谓高效 CSS 就是让浏览器在查找 style 匹配的元素的时候尽量进行少的查找.


这里总结了 常见的写 CSS 低效错误:

(1)、不要在ID选择器前使用标签名

一般写法:

DIV#divBox

更好写法:

#divBox

原因: 因为ID选择器是唯一的,加上 div 反而增加不必要的匹配


(2)、不要在class选择器前使用标签名

一般写法:

span.red

更好写法:

.red

原因:同上面第一条一样,但如果定义了多个 .red,而且在不同的元素下是样式不一样,则不能去掉,比如你 CSS 文件中定义如下:

p.red{color:red;} 

span.red{color:#ff00ff}

如果这样定义的就不要去掉,去掉后就会混淆,不过建议最好不要这样写。


(3)、尽量少使用层级关系

一般写法:

#divBox p .red{color:red;}

更好写法:

.red{..}

(4)、使用class代替层级关系

一般写法:

#divBox ul li a{display:block;}

更好写法:文章来源地址https://www.toymoban.com/news/detail-436157.html

.block{display:block;}

到了这里,关于1小时学会CSS - 中的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 孩子都能学会的FPGA:第十一课——基于握手机制的跨时钟域同步

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年02月04日
    浏览(41)
  • 孩子都能学会的FPGA:第三十一课——用FPGA实现SPI主机发送数据

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年02月04日
    浏览(29)
  • css画箭头图标放标题前面,旋转,border的单个边框设置

    CSS边框属性_css border dotted_小张biubiu的博客-CSDN博客 你还不知道css的旋转效果怎么实现?来这里看看吧_css旋转效果_我糖呢的博客-CSDN博客

    2024年02月09日
    浏览(29)
  • 不需要考虑mid+1、mid-1的二分查找模板,希望大家都能学会

        闫而总之,只要所要寻找的数组能够满足某一条件而被分成两边,就能进行二分,这边我们就拿有序数组的二分来做例子;     假设目前有这么一组数据:1 2 2 3 3 4 下标从0开始     假设此时的情景为,需要我们找到第一个=3的数字, 试想一下,如果能把整个区间分了

    2024年02月02日
    浏览(30)
  • 2小时上车AI作画_NovelAI (学会能做游戏mod)

    最近在打牌(杀戮尖塔真好玩),玩着突发奇想: 能不能?把游戏原画,通过AI作画,替换为二次元风格? 试试就逝逝...简单复盘下 本地部署【需要本地显卡】 —win 下载磁链/打包文件 磁链 magnet:?xt=urn:btih:4a4b483d4a5840b6e1fee6b0ca1582c979434e4ddn=naifutr=udp%3a%2f%2ftracker.opentrackr.org%3

    2024年02月11日
    浏览(44)
  • 一小时教你轻松学会使用Java 整合 Easy Excel 操作 Excel 文件

    目前市面上比较流行的操作 Excel 文件工具大致有两个,一个是 Apache POI 、另一个是阿里的 Easy Excel ,但是POI比较消耗内存,Easy Excel对POI进行了一些优化处理,所以Easy Excel使用更为简单方便,此文将带你学习掌握这两款开发利器! Apache POI 是用Java编写的免费开源的跨平台的

    2024年02月05日
    浏览(31)
  • 【微信小程序开发】一文学会使用CSS样式布局与美化

    在微信小程序开发中,CSS样式布局和美化是非常重要的一部分,它能够为小程序增添美感,提升用户体验。本文将介绍如何学习使用CSS进行样式布局和美化,同时给出代码示例,帮助开发者更好地掌握这一技巧。 在微信小程序中,我们可以使用CSS样式来控制元素的布局和样式

    2024年02月07日
    浏览(31)
  • 前端小技巧:学会通过CSS Hover和JS实现图片放大镜效果

    数据来源: ChatGPT 今天,我们来看一个鼠标悬停出现图片放大镜效果,这是一个比较实用且炫酷的纯CSS和JS实现的页面效果。 HTML HTML代码非常简单,我们只需要一个div容器,内部嵌入一张图片,再添加一个用来显示放大镜的div元素。 CSS CSS代码是实现放大镜效果的重要部分,

    2024年02月02日
    浏览(50)
  • 【简单记】opencv报错(记得持续更新!!!)

    #仅供个人复习备忘 1. 错误一: error: OpenCV(4.8.1) D:aopencv-pythonopencv-pythonopencvmodulesimgprocsrccolor.cpp:182: error: (-215:Assertion failed) !_src.empty() in function \\\'cv::cvtColor\\\' #这个错误来自于OpenCV库中的cv::cvtColor函数,通常表示 输入图像为空 (即_src.empty()为true)。 解决方法: imread读取图

    2024年02月04日
    浏览(22)
  • 常用短信平台一览,记得收藏哦

    市面上的短信平台很杂很多,小到几个人的公司、大到腾讯、阿里这样的巨无霸都在做,但常用的就那么几个,因而用户的选择也存在不少的困惑。 在我看来,我觉得选择短信平台、在我看来有这几个需要的注意地方: 1、价格 无论是企业还是个人做项目,这应该是考虑的最

    2024年02月02日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包