CSS入门与选择器

CSS,中文叫层叠样式表,样式表,css不是编程语言,作为一种与浏览器交流的工具,css用来描述 HTML 元素的的样式,比如大小,颜色,字体等等。

CSS语法规则

CSS这门语言的语法特别简单,只有一句:选择器{属性:属性值;属性:属性值;…},如果说CSS有难点,就是这门语言不断增加的词汇了,CSS的词汇无外乎三大类:选择器,属性和属性值,CSS的词汇是英文的,如果你英文很好,那么学习CSS很简单,反之就悲催了,虽然现在大部分IDE有代码补全的功能,但还是需要大量记忆的。

CSS的发展就是一个不断补充的过程,所以在使用CSS的时候,不需要像HTML那行申明使用的标准,高版本的浏览器认识高版本的CSS定义,低版本的浏览器略过不认识的CSS定义。

CSS有3个特性:
1.继承: 子元素可以继承父元素的样式。例外:a标签的文字颜色和下划线不继承,h1~h6的字体大小不继承,background属性不继承。
2.层叠: 是浏览器处理冲突的一个能力
层叠性只有在多个选择器选中“同一标签”,然后又设置了“相同的属性”,才会发生层叠性,这个时候一个属性就会将另一个属性层叠掉
3.优先级(权重): 当多个选择器选中同一个标签,并且给同一个标签设置相同的属性时,如何层叠就由优先级来确定。
优先级判断的三种方式:

  1. 是否是直接选中(间接选中就是指继承);如果是间接选中,那么就是谁离目标近就继承谁
  2. 是否是相同的选择器,如果都是直接选中并且都是同类型的选择器,那么就是谁写在后面就听谁的
  3. 不同选择器:如果都是直接选中,并且不是相同类型的选择器,那么就会按照选择器的优先级来层叠
    顺序是:!important>行内样式>id选择器>类选择器>标签选择器>通配符>继承>浏览器缺省设置

网页中怎样使用CSS

网页中常用下面3种方式使用样式表,各有优缺点,这个可以在页面中去体会。
1、外部样式表
在HTML的标签中,使用<link>标签中引用。网页中引入外部样式表,可以使使用该样式表的网页保持相同的风格,避免重复定义可以极大提高工作效率。

<link rel="stylesheet" type="text/css" href="./mycss.css">

2、内部样式表
将 CSS 放置在<style>标签中,该元素包含在 HTML的head内。

<style>
    body{font-size:14px;color:#333333}
</style>

3、内联样式
内联样式是仅影响一个元素的CSS声明。

<strong style="font-size: 18px">CSS简介</strong>

css选择器

每一条css样式定义被{}分隔成两部分,{}之前的部分就是“选择器”。 “选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素。
CSS选择器具有隐式迭代的特点,无需循环遍历符合选择器要求的每个元素,比如声明 p{font-size:14px},页面中所有的没有匹配其他规则的p标签中的文字都会显示为14px,使用起来相对方便。
选择器包括:

选择器 例子 说明 备注
通配符选择器 * 选择全部元素
类选择器 .intro 选择所有class="intro"的元素
ID选择器 #myID 选择所有id="myID"的元素
元素选择器 p 选择所有p元素
群组选择器 div,p 选择所有<div>元素和<p>元素
同级元素通用选择器 p~ul 选择前面有 <p> 元素的每个同级的<ul> 元素。 css3
后代选择器 div p 选择<div>元素的所有<p>元素
子选择器 div>p 选择所有父级是<div> 元素的 <p> 元素
相邻选择器 div+p 选择所有紧接着<div>元素之后的<p>元素
属性选择器 [target] 选择所有带有target属性元素
伪类选择器 a:visited 选择所有访问过的链接
伪元素选择器 p:before 在每个<p>元素之前插入内容
属性选择器

可以为拥有指定属性的 HTML 元素设置样式

选择器 例子 描述 备注
[attribute] [target] 选择带有 target 属性所有元素。 用于选取带有指定属性的元素。
[attribute=value] [target=_blank] 选择 target="_blank" 的所有元素。 用于选取带有指定属性和值的元素。
[attribute~=value] [title~=flower] 选择 title 属性包含单词 “flower” 的所有元素。 用于选取属性值中包含指定词汇的元素。
[attribute|=value] [lang|=en] 选择 lang 属性值以 “en” 开头的所有元素。 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。
[attribute^=value] a[src^=“https”] 选择其 src 属性值以 “https” 开头的每个 <a> 元素。 css3,匹配属性值以指定值开头的每个元素。
[attribute$=value] a[src$=".pdf"] 选择其 src 属性以 “.pdf” 结尾的所有 <a> 元素。 css3,匹配属性值以指定值结尾的每个元素。
[attribute*=value] a[src*=“abc”] 选择其 src 属性中包含 “abc” 子串的每个 <a> 元素。 css3,匹配属性值中包含指定值的每个元素。
伪类选择器

同一个标签,根据其不同的状态,有不同的样式。这就叫做“伪类”。伪类用冒号来表示。

选择器 例子 描述 版本
:link a:link 选择所有未被访问的链接。
:visited a:visited 选择所有已被访问的链接。
:active a:active 选择活动链接。
:hover a:hover 选择鼠标指针位于其上的链接。
:focus input:focus 选择获得焦点的 input 元素。
结构性伪类选择器
:first-of-type p:first-of-type 选择属于其父元素的首个 <p> 元素的每个 <p> 元素。 3
:last-of-type p:last-of-type 选择属于其父元素的最后 <p> 元素的每个 <p> 元素。 3
:only-of-type p:only-of-type 选择属于其父元素唯一的 <p> 元素的每个 <p> 元素。 3
:only-child p:only-child 选择属于其父元素的唯一子元素的每个 <p> 元素。 3
:nth-child(n) p:nth-child(2) 选择属于其父元素的第二个子元素的每个 <p> 元素。 3
:nth-last-child(n) p:nth-last-child(2) 同上,从最后一个子元素开始计数。 3
:nth-of-type(n) p:nth-of-type(2) 选择属于其父元素第二个 <p> 元素的每个 <p> 元素。 css3
:nth-last-of-type(n) p:nth-last-of-type(2) 同上,但是从最后一个子元素开始计数。 css3
:last-child p:last-child 选择属于其父元素最后一个子元素每个 <p> 元素。 css3
:empty p:empty 选择没有子元素的每个 <p> 元素(包括文本节点)。 css3
:empty p:empty 选择没有子元素的每个<p> 元素(包括文本节点)。 css3
:target #news:target 选择当前活动的 #news 元素。 css3
用户界面(UI)有关的伪类
:enabled input:enabled 选择每个启用的 <input> 元素,一般用于input,select和textarea css3
:disabled input:disabled 选择每个禁用的 <input> 元素,一般用于input,select和textarea css3
:checked input:checked 选择每个被选中的 <input> 元素。 css3
:not(selector) :not(p) 选择非 <p> 元素的每个元素。 css3
::selection ::selection 选择被用户选取的元素部分。 css3
::placeholder input::placeholder 设置对象文字占位符的样式。 css3
超链接(a标签)的四种状态,对应4个伪类
:link “链接”:超链接点击之前
:visited “访问过的”:链接被访问过之后
:hover “悬停”:鼠标放到标签上的时候
:active “激活”: 鼠标点击标签,但是不松手时。
伪元素选择器

并不是针对真正的元素使用的选择器,而是针对CSS中已经定义好的伪元素使用的选择器

选择器 例子 描述
:first-letter p:first-letter 选择每个<p> 元素的首字母。
:first-line p:first-line 选择每个 <p> 元素的首行。
:before p:before 在每个 <p> 元素的内容之前插入内容。
:after p:after 在每个 <p> 元素的内容之后插入内容。
CSS选择器的效率

id选择器(#myid)
类选择器(.myclassname)
元素选择器(div,h1,p)
相邻选择器(h1+p)
子选择器(ul > li)
后代选择器(li a)
通配符选择器(*)
属性选择器(a[target=_blank])
伪类选择器(a:hover,li:nth-child(2))
上面九种选择器的效率是从高到低排下来的,基中ID选择器的效率是最高,而伪类选择器的效率则是最低。

CSS属性

每一条css样式定义被{}分隔成两部分,{}之后的部分是样式声明,样式声明的语法是分号分隔的一组属性:属性值组成。
{属性:属性值;属性:属性值;…}。
CSS属性和属性值得词汇量比较大,这里简单做个分类。
1、与网页排版相关的属性,设定的是元素对网页空间的使用,将在盒模型和定位中讲解

包括display 属性,盒模型相关属性、定位属性、弹性盒相关属性

2、与排版和动画无关的属性,将在CSS样式属性详解中讲解。

包括字体、文字、背景、列表、表格、轮廓、鼠标样式、阴影、滤镜等属性。

3、CSS动画有关的属性,CSS3动画中讲解。

CSS属性中的单位

尺寸
单位 描述
px 像素 (计算机屏幕上的一个点) 9pt=12px
% 百分比
em 1em 等于当前的字体尺寸。
rem 1em 等于当前的字体尺寸。
in 英寸
cm 厘米
mm 毫米
ex 一个 ex 是一个字体的 x-height。 (x-height 通常是字体尺寸的一半。)
pt 磅 (1 pt 等于 1/72 英寸)
pc 12 点活字 (1 pc 等于 12 点)
颜色

学过设计的人应该不陌生,前端只要了解就可以了,在css中最常用的是十六进制颜色和RGB颜色。

单位 描述 备注
(颜色名) 颜色名称 (比如 red)
#rrggbb 十六进制数表示颜色 (比如 #ff0000)
rgb(x,x,x) R:红色 G:绿色 B:蓝色,取值范围都是0-255 (比如 rgb(255,0,0))
rgb(x,x,x,x) RGB 值加上透明度,透明度取值范围0-1,rgba(255,0,0,0.5) css3
hsl(x,x,x) 通过色相、饱和度、亮度设置颜色 hsl(360,50%,50%) css3
hsla(x,x,x,x) 同上,增加透明度 hsla(360,50%,50%,0.5) ,透明度取值范围0-1 css3

hex十六进制颜色
RR(red红色),GG(green绿色),BB(blue蓝色)。取值范围必须介于0-9、A-F(a-f),不区分大小写
#ff0000值呈现的是红色,因为红色的组成设置为最高(ff),而其他设置为0,同理#00ff00为绿色,#0000ff为蓝色
#000000值为黑色
#ffffff值为白色

RGB颜色
RGB(红,绿,蓝),每个参数定义颜色的亮度,取值范围为0-255之间的整数,或者一个从0%-100%之间的整数百分比值。

HSL颜色
在这里插入图片描述
H:色相指示颜色的种类,0和360是红色,接近120的是绿色,240是蓝色。
S:饱和度指示颜色的鲜艳程度,有效值为0~100%为0时必然显示黑白灰这三种最不鲜艳的颜色。
L:亮度指示颜色的明亮程度,有效值为0~100%。0%必然为黑色,100%必然为白色。

猜你喜欢

转载自blog.csdn.net/dreamingbaobei3/article/details/88244603
今日推荐