css study
CSS
CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言
语法
CSS规则由两个主要的部分构成:选择器,以及一条或多条声明:
h1{color:blue;font-size:12px;} |
选择器通常是您需要改变样式的 HTML 元素。
每条声明由一个属性和一个值组成。
属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。
注释为:
/* |
id和class选择器
id 选择器
id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。
HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 “#” 来定义。
以下的样式规则应用于元素属性 id=”para1”:
#para1 |
ID属性不要以数字开头
class选择器
class可以在多个元素中使用
.center {text-align:center;} |
类名的第一个字符不能使用数字!
CSS 创建
插入样式表的方法有三种:
- 外部样式表(External style sheet)
- 内部样式表(Internal style sheet)
- 内联样式(Inline style)
外部样式表
<head> |
以下是一个样式表css文件的例子
hr {color:sienna;} |
不要在属性值与单位之间留有空格
内部样式表
<head> |
内联样式
<p style="color:sienna;margin-left:20px">这是一个段落。</p> |
优先级
(内联样式)Inline style > (内部样式)Internal style sheet >(外部样式)External style sheet > 浏览器默认样式
背景
- background-color
- background-image
- background-repeat
- background-attachment
- background-position
水平或垂直平铺
body |
不平铺:background-repeat:no-repeat;
设置定位
body |
文本
颜色
body {color:red;} |
对齐方式
h1 {text-align:center;} |
当text-align设置为”justify”,每一行被展开为宽度相等,左,右外边距是对齐(如杂志和报纸)。
文本修饰
a {text-decoration:none;} |
删除下划线
h1 {text-decoration:overline;} |
上 中 下
文本转换
p.uppercase {text-transform:uppercase;} |
指定大小写字母
文本缩进
p {text-indent:50px;} |
首行缩进
字体
在CSS中,有两种类型的字体系列名称:
- 通用字体系列 - 拥有相似外观的字体系统组合(如 “Serif” 或 “Monospace”)
- 特定字体系列 - 一个特定的字体系列(如 “Times” 或 “Courier”)
字体系列
font-family 属性设置文本的字体系列。
p{font-family:"Times New Roman", Times, serif;} |
字体样式
font-style主要是用于指定斜体文字的字体样式属性。
这个属性有三个值:
- 正常 - 正常显示文本
- 斜体 - 以斜体字显示的文字
- 倾斜的文字 - 文字向一边倾斜(和斜体非常类似,但不太支持)
p.normal {font-style:normal;} |
字体大小
font-size 属性设置文本的大小。
1em和当前字体大小相等。在浏览器中默认的文字大小是16px。
h1 {font-size:2.5em;} /* 40px/16=2.5em */ |
在所有浏览器的解决方案中,设置
元素的默认字体大小的是百分比:body {font-size:100%;} |
链接
链接的样式,可以用任何CSS属性(如颜色,字体,背景等)。
特别的链接,可以有不同的样式,这取决于他们是什么状态。
这四个链接状态是:
- a:link - 正常,未访问过的链接
- a:visited - 用户已访问过的链接
- a:hover - 当用户鼠标放在链接上时
- a:active - 链接被点击的那一刻
a:link {color:#000000;} /* 未访问链接*/ |
当设置为若干链路状态的样式,也有一些顺序规则:
- a:hover 必须跟在 a:link 和 a:visited后面
- a:active 必须跟在 a:hover后面
列表
list-style-type属性指定列表项标记的类型是:
ul.a {list-style-type: circle;} |
所有的CSS列表属性
| 属性 | 描述 |
|---|---|
| list-style | 简写属性。用于把所有用于列表的属性设置于一个声明中 |
| list-style-image | 将图像设置为列表项标志。 |
| list-style-position | 设置列表中列表项标志的位置。 |
| list-style-type | 设置列表项标志的类型。 |
表格
边框
table,th,td |
table |
border-collapse 属性设置表格的边框是否被折叠成一个单一的边框或隔开:
(上面的是双边框,下面的是单边框)
表格宽度和高度
table |
表格文字对齐
td |
向左,右,或中心
td |
顶部,底部或中间
表格填充
td |
表格颜色
table, td, th |
盒子模型
- Margin(外边距) - 清除边框外的区域,外边距是透明的。
- Border(边框) - 围绕在内边距和内容外的边框。
- Padding(内边距) - 清除内容周围的区域,内边距是透明的。
- Content(内容) - 盒子的内容,显示文本和图像。
div { |
边框
border-style 属性用于指定要显示的边框类型。
允许的值如下:
- dotted:定义点状边框。
- dashed:定义虚线边框。
- solid:定义实线边框。
- double:定义双线边框。
- groove:定义三维沟槽边框。效果取决于 border-color 的值。
- ridge:定义三维脊状边框。效果取决于 border-color 的值。
- inset:定义三维嵌入边框。效果取决于 border-color 的值。
- outset:定义三维突出边框。效果取决于 border-color 的值。
- none:定义无边框。
- hidden:定义隐藏边框。
边框宽度
p.one |
边框颜色
p.one |
单独设置各边
p |
轮廓
轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
| 属性 | 说明 | 值 | CSS |
|---|---|---|---|
| outline | 在一个声明中设置所有的轮廓属性 | *outline-color outline-style outline-width *inherit | 2 |
| outline-color | 设置轮廓的颜色 | *color-name hex-number rgb-number *invert inherit | 2 |
| outline-style | 设置轮廓的样式 | none dotted dashed solid double groove ridge inset outset inherit | 2 |
| outline-width | 设置轮廓的宽度 | thin medium thick *length *inherit | 2 |
外边距
| 值 | 说明 |
|---|---|
| auto | 设置浏览器边距。 这样做的结果会依赖于浏览器 |
| length | 定义一个固定的margin(使用像素,pt,em等) |
| % | 定义一个使用百分比的边距 |
填充
| 值 | 说明 |
|---|---|
| length | 定义一个固定的填充(像素, pt, em,等) |
| % | 使用百分比值定义一个填充 |
分组和嵌套
h1,h2,p |
p |
- p{ }: 为所有 p 元素指定一个样式。
- .marked{ }: 为所有 class=”marked” 的元素指定一个样式。
- .marked p{ }: 为所有 class=”marked” 元素内的 p 元素指定一个样式。
- p.marked{ }: 为所有 class=”marked” 的 p 元素指定一个样式。
尺寸
| 属性 | 描述 |
|---|---|
| height | 设置元素的高度。 |
| line-height | 设置行高。 |
| max-height | 设置元素的最大高度。 |
| max-width | 设置元素的最大宽度。 |
| min-height | 设置元素的最小高度。 |
| min-width | 设置元素的最小宽度。 |
| width | 设置元素的宽度。 |
显示
display属性设置一个元素应如何显示,visibility属性指定一个元素应可见还是隐藏。
visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。
块和内联元素
块元素是一个元素,占用了全部宽度,在前后都是换行符。
块元素的例子:
内联元素只需要必要的宽度,不强制换行。
内联元素的例子:
定位
position 属性指定了元素的定位类型。
position 属性的五个值:
- static
- relative
- fixed
- absolute
- sticky
元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非事先设定position属性。他们也有不同的工作方式,这取决于定位方法。
static:HTML 元素的默认值,即没有定位,遵循正常的文档流对象。
fixed:元素的位置相对于浏览器窗口是固定位置。
即使窗口是滚动的它也不会移动:
relative:相对定位元素的定位是相对其正常位置。
absolute:绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于:
sticky:基于用户的滚动位置来定位
元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素
重叠
z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面)
一个元素可以有正数或负数的堆叠顺序:
overflow
overflow属性有以下值:
值 描述 visible 默认值。内容不会被修剪,会呈现在元素框之外。 hidden 内容会被修剪,并且其余内容是不可见的。 scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。 auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。 inherit 规定应该从父元素继承 overflow 属性的值。 float
CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。
Float(浮动),往往是用于图像,但它在布局时一样非常有用。
CSS 中所有的浮动属性
“CSS” 列中的数字表示不同的 CSS 版本(CSS1 或 CSS2)定义了该属性。
属性 描述 值 CSS clear 指定不允许元素周围有浮动元素。 left right both none inherit 1 float 指定一个盒子(元素)是否可以浮动。 left right none inherit 1 组合选择符
CSS组合选择符包括各种简单选择符的组合方式。
在 CSS3 中包含了四种组合方式:
- 后代选择器(以空格 分隔)
- 子元素选择器(以大于 > 号分隔)
- 相邻兄弟选择器(以加号 + 分隔)
- 普通兄弟选择器(以波浪号 ~ 分隔)
伪类
伪类的语法:
selector:pseudo-class {property:value;}
CSS类也可以使用伪类:
selector.class:pseudo-class {property:value;}
a.red:visited {color:#FF0000;}
<a class="red" href="css-syntax.html">CSS 语法</a>伪元素
selector::pseudo-element {
property: value;
}一般是设置首行 首字母
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 tgrddf55's Blog!










