CSS基础笔记(1)-选择器、文本与字体属性

CSS(cascading style sheet,层叠式样式表)是用来给HTML标签设置样式的语言。

一、传统CSS2.1选择器

(一)标签选择器和id选择器

标签选择器也称元素选择器、类型选择器。它直接使用元素的标签当做选择器,将选择页面上所有该种标签。
(1)标签选择器将选择页面上所有该种标签,无论这个标签所处位置的深浅。
(2)标签选择器“覆盖面”大,所以通常用于标签的初始化

ul{ 
  list-style:none;/***去掉无须列表的小圆点***/
}
a{
  text-decoration: none; /***去掉超链接的下划线***/
}

标签可以有id属性,是这个标签的唯一标识
id名称只能由字母、数字、下划线、短横构成,且不能以数字开头,字母区分大小写。

<p id="p-style">为中华崛起而读书</p>
#p-style  {
    font-size: 24px;
    color: chartreuse;
}

(二)class选择器

class属性表示“类名”
class命名规范和id命名规范相同。使用点.类名选择指定class的标签。
同一个标签可以同时属于多个类,类名用空格隔开。

<p class="warning spec">这是一个警告</p>
.warning{
  color: red;
}
.spec{
  font-style:italic  /*文字倾斜*/
}

原子类:在制作网页项目前,可以将所有的常用字号、文字颜色、行高、外边距、内边距等都设置为单独的类

(三)复合选择器
复合选择器主要有三类
1.后代选择器例如:.box .spec 选择类名为box的标签内部的类名为spec的标签

CSS选择器中,使用空格表示"后代"
"后代"并不一定是"儿子",还包括"孙子,曾孙"
后代选择器通过很多空格,隔开好几代

.box ul li .spec em{
  color: red
}
<div class="box">
  <ul>
    <li><p class="spec">我是一个段落<em>红色文字</em><p></li>
  </ul>
</div>

2.交集选择器例如:li.spec 选择既是li标签,也属于spec类的标签

3.并集选择器例如:ul,ol 选择所有ul和ol标签

并集选择器也叫做分组选择器,逗号表示分组

ul,ol{
  list-style:none
}

\color{red}{选择器可以任何搭配、结合,从而形成复合选择器。}

(四)伪类

伪类是添加到选择器的描述性词语,指定要选择的元素的特殊状态

超级链接拥有四个特殊状态
a:link没有被访问的超级链接
a:visited已经被访问的超级链接
a:hover 正鼠标悬停的超级链接
a:active正被激活的超级链接 (按下按键但是还没有松开按键)

a标签的伪类书写,要按照"爱恨准则"的顺序,否则会有伪类不生效
:link -> :visited -> :hover -> :active

a:link {
    color: rgb(84, 6, 241)
}
a:visited {
    color: rgb(194, 244, 66);
}
a:hover {
    background-color: crimson;
}
a:active {
    font-size: 24px;
}
<p> <a href="http://www.163.com" target="_blank">网易</a> </p>
<p> <a href="http://www.jd.com"> 京东 </a> </p>

二、CSS3新增选择器

(一)元素关系选择器
1.子选择器div>p:div的子标签p

当使用>符号分隔两个元素时,它只会匹配那些作为第一个元素的直接后代元素,即两个标签为父子关系。.box>p{...}
后代选择器不一定限制时子元素.box p{...}

2.相邻兄弟选择器img+p:图片后面紧跟着的段落将被选中

相邻兄弟选择器+介于两个选择器之间,当第二个元素紧跟在第一个元素之后,并且两个元素都是属于同一个父元素的子元素,则第二个元素将被选中。img+span 就是选择"紧跟在后面的一个span"

3.通用兄弟选择器p~span:p元素之后的多有同层级span元素

(二)序号选择器

  1. :first-child

表示"选择第一个子元素",比如下面的例子就表示选择.box1盒子中的第一个p.box1 p:first-child{color:red;}

  1. :last-child

表示"选择最后一个子元素",比如后例就表示选择.box1盒子最后一个p.
.box1 p:last-child{color:red;}

3.:nth-child()

:nth-child()可以选择任意序号的子元素.box2 p:nth-child(3){color:green;}
:nth-child()可以写成an+b的形式,表示从b开始每个a个选一个,注意不能携程b+an。
.box2 p:nth-child(3n+2){color:green}
2n+1等价于odd表示奇数,2n等价于even,表示偶数

4.:nth-of-type()

选择同种标签指定序号的子元素..box4 p:nth-of-type(3){color:blue;}

5.:nth-last-child()和:nth-last-of-type() 都是倒数选择

(三)属性选择器
img[alt]:选择有alt属性的img标签
img[alt="太阳"]:选择alt属性是太阳的img标签
img[alt^=''成都"]:选择alt属性以成都开头的 img标签
img[alt$=''夜景"]: 选择alt属性以夜景结尾的img标签
img[alt*="美"]: 选择alt属性中含有美字的img标签
img[alt~="手机摄影"]: 选择alt属性中有空格隔开的手机拍摄字眼的img标签
img[alt|="参赛作品"]: 选择有alt属性以“参赛作品”开头的img标签
用得少。
(四)CSS3新增伪类
empty选择空标签
focus选择当前获得焦点的表单元素
enabled选择当前有效的表单元素
disabled选择当前无效的表单元素
checked选择当前已经勾选的单选按钮或则复选框
root选择根元素,即<html>标签

(五)伪元素

css3新增“伪元素”特性,表示虚拟动态创建的元素。伪元素用双冒号表示。

::before创建一个伪元素,其将成为匹配选中的\color{red}{元素的第一个子元素},必须设置content属性表示其中的内容。
::after创建一个伪元素,其将成为匹配选中的\color{red}{元素的最后一个子元素},必须设置content属性表示其中的内容。

<body>
    <p><a href="">我是超链一</p>
    <p><a href="">我是超链二</p>
</body>
<style>
a::before {
    content: '@'
}
a::after {
    content: '*'
}
</style>

::selectioncss伪元素应用于\color{red}{文档中被用户高亮的部分(使用鼠标圈选的部分)}
::first-letter会选中某元素中(必须是块级元素)第一行的第一个字母
::first-line会选中某元素中(必须是块级元素)第一行的全部文字

三、层叠性和选择器权重计算

层叠性:\color{red}{多个选择器可以同时作用于同一个标签,效果叠加}
层叠性的冲突处理: \color{red}{id权重>class权重>标签权重}
复杂选择器可以通过\color{red}{(id个数,class的个数,标签的个数)}的形式,计算权重
需要将某个选择器的某条属性提升权重,可以再属性后面添加 \color{red}{ !important }

四、常用文本样式属性

(一)color属性
color属性可设置\color{blue}{文本内容的前景色}.可以使用英语单词、十六进制、rgb()、rgba()等表示法

1.通常使用十六进制表示 color:#ff0000;
2.rgba()表示法:最后一个参数表示透明度,介于0-1之间,0表示纯透明,1表示纯实心。color:rgba(255,0,0,.65)

(二)font-size属性
font-size属性用来设置字号,通常使用pxemrem为单位,例如: font-size:30px
(三)font-weight
font-weight属性设置字体的粗细程度,通常就用normal和bold两个值

font-weight:normal 正常粗细,与400等值
font-weight:bold 加粗,与700等值
font-weight:normal 更细,大多数中文字体不支持
font-weight:normal 更粗,大多数中文字体不支持

(三)font-style属性
font-style属性设置字体的倾斜

font-style:normal 取消倾斜,可以把天生倾斜的i、em等标签设置为不倾斜
font-style:italic 设置为倾斜字体(常用)
font-style:oblique 设置为倾斜字体(用常规字体模拟,不常用)

(四)text-decoration属性

text-decoration:none; 没有修饰线
text-decoration:underline; 下划线
text-decoration:line-through; 删除线
text-decoration属性用于设置文本的修饰线外观(下划线、删除线)

五、字体属性详解

(一)font-family属性
font-family用于设置字体.font-family:"微软雅黑"

1.字体可以是列表形式,一般英语字体放到前面,后面的字体是前面的“后备字体”
font-family:serig,"Times New Roman","微软雅黑"\color{red}{字体中有空格,必须用引号包裹}
2.中文字体也可以使用他们的英语名字表示:"微软雅黑"="microsoft Yahei","宋体"="Simsun"
3.为保证通用性,字体\color{red}{!通常使用用户计算机中已经安装好的常用字体}。为了用户浏览器正常使用我们自定义的字体,需要保证用户加载网页的时候,同时下载字体文件。
4.字体文件根据操作系统和浏览器的不同,有eot、woff2、woff、ttf、svg文件格式。

(二)定义字体

@font-face定义字体

<style>
@font-face{
  font-family:"字体名称";
  font-display:swap;
  src:url("eot字体文件位置");
  src:url("eot字体文件位置") format("embedded-opentype"),
  src:url("woff2字体文件位置") format("woff2"),
  src:url("woff字体文件位置") format("woff"),
  src:url("ttf字体文件位置") format("truetype"),
  src:url("svg字体文件位置") format("svg")
 }
</style>

👍阿里巴巴免费商用授权普惠字体

六、段落和行相关属性

(一)text-indent属性

text-indent定义首行文本内容之前的缩进量。缩进两个字符 text-indent:2em;

(二)line-height属性

line-height属性定义行高。
行高字面意思是一行文本的高度,行内居中文本的行高上下间隙应该是一致的。 行高测量定义可以是:上一行文本顶部到下一行文本顶部的纵向距离;也可以是上一行文本底部到下一行文本底部的纵向距离。

1.line-height属性的可以是以px为单位的数值
line-height:30px;
2.line-height属性也可以是没有单位的数值,\color{red}{表示字号的倍数}
line-height:1.5;
2.line-height属性也使用百分数\color{red}{表示字号的倍数}
line-height:150%;
(三)单行文本居中
设置\color{red}{行高=盒子高度},就可以实现当行文本垂直居中
设置\color{red}{text-align:center},实现文本水平居中。
(四)font合写属性
font属性可以用来作为font-style,font-weight,font-size,line-height,font-family属性的合写
font:20px/1.6 Arial,"微软雅黑";

七、继承性

文本相关的属性普遍具有继承性,只需要给祖先标签设置,即可在后台所有标签中生效。
colorfont-开头、list-开头、text-开头、line-开头、
因为继承性,所以通常设置\color{red}{body标签的字号、颜色、行高}等, 即可设置整个网页的默认样式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容