css基础:语法规范与选择器

css是用来装饰HTML的工具

一、css基础

1.css语法规范

css是层叠样式表,也成为级联样式表,要想熟练地使用css对网页进行修饰,首先需要了解css样式规则。
css规则主要由两个部分构成:选择器和声明。


图片.png

选择器是用于指定CSS样式的HTML标签,花括号内是该对象设置的具体样式。属性的属性值以“键值对”的形式出现。
css写在<head></head>的<style></style>中

p {
    color: red;
    font-size: 18px;
}
2.引入css的三种方式:
  • 内联样式表:在标签内使用style属性
  • 内嵌样式表:在head标签内使用style属性
  • 外部样式表:通过link标签引入外部css文件。
<link type="text/css" rel="stylesheet" href="css/basic.css">
3. css代码风格

(1)多行展开
(2)小写
(3)冒号后面保留一个空格
(4)选择器与大括号之间保留一个空格

二、css元素属性

1. 字体

(1)字体类型
css使用font-family属性定义文本字体系列,浏览器依次选择自己所具备的字体来显示,多个字体之间用英文单引号隔开,如果字体名有多个单词则用引号包括起来。

body { 
    font-family:"Microsoft Yahei", Arial;
}

(2)定义字体的大小
css使用font-size属性定义字体的大小

body {
    font-size: 20px;
}

单位有px、em、rem

  • px表示绝对大小
  • em 表示相对父容器的大小比例
  • rem 表示相对根容器<html>标签的大小比例,这里的r是root的意思。

(3)定义字体粗细
css使用font-weight属性定义字体粗细,

  • normal 默认正常粗细
  • bold 粗体
  • lighter 细体

font-weight的属性值可以设置为数字,不用添加单位;
400等价于normal;
700等价于bold;
(4)文字样式
css使用font-style属性设置文本的风格,

  • normal 正常
  • italic 斜体

实际使用场景是将原本倾斜的文字变得不倾斜。
(5)其它设置
使用line-height设置字体行高,与容器行高保持一致就可以使字体纵向居中。
使用text-align: center使字体在容器中横向居中

2. 设置颜色

可以使用#使用十六进制颜色
也可以使用rgb(11,22,33)表示十进制表示的颜色;
还可以使用rgba(11,22,33,0.5)表示带透明度的颜色,最后一个参数alpha值取0-1之间。

3. 设置背景
  • background-color 设置背景颜色
  • background-image 设置背景图片
  • background-repeat 设置比背景小的图片是否重复排列显示
  • background-position 设置背景图片的位置
  • background-attachment 设置背景图片是否固定不动
    fixed表示背景图片固定不动
  • background-size 设置图片填充模式

我们可以为整个页面设置背景,也可以为某个容器(div)设置背景。
background-position设置背景图片的位置,可以设置两个参数,横向偏移量、纵向偏移量。可以设置为:

background-position: 300px 400px;
background-position: 30% 40%
background-position: left、center、right  top、center、bottom

如果想让图片完全填满容器可以使用background-size: 100%或者background-size: cover,如果设置为contain可以让图片随着容器的大小编号自适应变化。
注意:以上属性都可以使用background一个关键字来设置,但是格式与顺序有要求:

background: bg-color bg-image position/bg-size bg-repeat bg-origin bg-clip bg-attachment initial|inherit;
4. 段落

css段落有如下属性需要重点了解:

letter-spacing: 5px; /* 设置字间距 */
word-spacing: 5px;  /* 英文单词之间的间距 */
direction: ltr,rtl; /* 设置文字排列的方向从左到右和从右到左 */
text-decoration:none,line-through,overline,unerline; /* 文字无线、删除线、上划线、下划线*/
text-align: center,left,right,justify;  /* 文字的对齐,justify两边对齐 */
text-indent: 60px; /* 段落开始位置空格*/
text-transform:uppercase,lowercase,capitalize; /*设置大小写*/
width: 300px;
while-space: nowrap;/*超过容器的部分不换行*/
overflow:hidden;    /*隐藏超过容器的部分*/
text-overflow: ellipsis; /*用省略号代替超过的部分*/
vertical-align:top,middle,bottom; /*设置图片旁文字的位置*/

5.列表

无论是有序列表还是无序列表都可以进行样式设置:

list-style-type: none,disc,cirlce,square; /*无序列表前标识,无、实心圆、空心圆、方块*/
list-style-type:decimal,low-roman; /*有序列表前标识,阿拉伯数字、小写罗马字*/
list-style-position: indside,outside; /*设置列表图标与文字在同一个表格内或表格外*/

6.链接

链接就是我们HTML里的a标签,这里我们主要将关于链接的几种状态

a:link {    /* 链接初始配置的css*/
    color:blue;
}
a:hover {   /* 鼠标悬停时响应的css*/
    color: green;
    font-weight: bold;
}
a:active {  /* 鼠标点击完成时响应的css*/
    color: red;
}
a:visited {
    color: black;   {  /* 完成访问后响应的css*/
}

设置鼠标光标样式

cursor:hand; /* 手指 */
cursor:crosshair; /* 十字体 */
cursor:move; /* 十字箭头 */
cursor:text; /* 可编辑文字光标 */
cursor:wait; /* 漏斗或者加载时出现的环 */

三、 css选择器

css选择器用来指定网页中需要用来样式化的元素,下面依次介绍css中的各种选择器:

1. 基本选择器

(1)标签选择器
标签选择器可以把一类标签全部选择出来,比如把所有的<div>标签,所有的<p>标签。
(2)类选择器
差异化选择不同的标签,单独选择一个或者几个标签,可以使用类选择器。
语法:

.类名: {
    属性: 值;
}

使用方法:直接在标签中使用class来调用属性;

注意:
一个标签可以使用多个类;
基础选择器的优先级与标签内的顺序无关,只与从上往下的顺序有关,css是从上往下依次执行,如果属性设置冲突,系统最终执行的是最靠下的属性。

<li class="类名">文字</li>

标签中可以使用多类名,只需要使用空格隔开即可。
(3)id选择器
id选择器可以为标定特定id的html元素指定特定的样式。
html元素以id属性来设置id选择器,css中id选择器以#来定义。
语法:

#id名 {
    属性: 值;
}

id选择器与类选择器的区别是,id选择器只能调用一次。
(4)通配符选择器
在css中,通配符选择使用*定义,它表示选取页面中所有的元素(标签)
语法:

* {
    属性: 值;
}

通配符选择器不需要调用,自动给所有元素使用样式。

2.组合选择器

组合选择器就是基本选择器中加上特殊符号,具备特殊含义。

举例 名称 功能 备注
div,p 分组选择器 选择所有的div元素和p元素 同时响应多个标签
div p 后代选择器 选中div元素内部所有p元素 div标签的子子孙孙中的p标签都可以响应
div>p 子选择器 选择父元素为div的所有p元素 div标签的子标签p元素才可以响应
div+p 相邻兄弟选择器 选择紧接在div元素之后的p元素 某一个选择器后面的第一个兄弟
div~ul 普通兄弟选择器 选择前面有p元素的每个ul元素 某一个选择器后面的所有兄弟
3.属性选择器
举例 功能 备注
[target] 选择带有target属性的所有元素 有这个属性的标签就响应,没有就不响应
[target=_blank] 选择属性为target=_blan的元素
[title~=flower] 选择title属性包含单词flower的所有元素 这是css2的写法,css3使用*=
a[src^="https"] 选择src属性以https开头的所有元素 以什么结尾就写成$=

html中,如果有标签有如下属性

<a href="192.168.1.1">后台</a>

我们可以用属性选择器把这个标签选中;

a[href]{
    color: red;
}
4.伪类选择器

伪类选择器主要分为两类:状态伪类和结构伪类。
状态伪类主要有:

  • a:hover
  • a:link
  • a:active
  • a:visited
    结构伪类主要有:
  • first-child 第一个子元素
  • last-child 最后一个子元素
  • nth-child(n) 从前往后数,第n个子元素
  • nth-last-child(n) 从后往前数,第n个子元素
  • nth-child(even) 奇数行个元素
  • nth-child(odd) 偶数行和元素
    结构伪类选择器适合用于表格的格式化:
.table>tbody>tr:first-child{
    color: red;
}
.table>tbody>tr:last-child{
    color: green;
}
.table>tbody>tr:nth-child(odd){
    background-color: olivedrab;
}
.table>tbody>tr:nth-child(even){
    background-color: orchid;
}
5.伪元素选择器

伪元素也是一种标签,是系统自动添加的。调用伪元素选择器最好使用两个冒号;

属性 描述 css类型
:first-letter 向文本的第一个字母添加特殊样式 1
:first-line 向文本的首行添加特殊格式 1
:before 在元素之前添加内容 2
:after 在元素之后添加内容 2
<div class="div01">
    学习css<br>
    学习css<br>
    学习css<br>
</div>

使用伪元素选择器:

.div01::first-letter{
    color: royalblue;
    font-size: 20px;
}

将首字选择出来格式化

6.选择器优先级

选择器优先级从低到高的顺序是:

通配符选择器->标签选择器->类选择器->属性选择器->伪类选择器->id选择器->内联样式->!important

如果在选择器后面添加一个!important,那么该选择器的优先级立马变成最高优先级;

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

推荐阅读更多精彩内容

  • HTML 1. HTML文件结构 称为根标签,所有的网页标签都在 中。 标签用于定义文档的头部,它是所有头部元素...
    Cocoaleeo阅读 183评论 0 0
  • CSS代码语法 css 样式由选择符和声明组成,而声明又由属性和值组成,如下图所示: 选择符:又称选择器,指明网页...
    雨飞飞雨阅读 280评论 0 3
  • css样式设置小技巧 水平居中设置-行内元素 我们在实际工作中常会遇到需要设置水平居中的场景,比如为了美观,文章的...
    雨飞飞雨阅读 165评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,471评论 28 53
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,133评论 4 8