在css中为什么为什么我只给父级元素body设置outline的样式时,他的子元素p却并没有继承他的outline样式?

 display 设置或检索对象是否及如何显示

display:block;: 除了转换为块级元素之外,同时还有显示元素的意思。

特点: 隐藏之后,不再保留位置。
应用: 配合后面js做特效,比如下拉菜单,原先没有,鼠标经过,显示下拉菜单, 应用极为广泛

 visibility:设置或检索是否显示对象:

特点: 隐藏之后,继续保留原有位置。

 检索或设置当对象的内容超过其指定高度及宽度时如何管理内容。
  1. 隐藏超出内容,隐藏掉, 不允许内容超过父盒子。

1.4 显示和隐藏总结

配合后面js做特效,比如下拉菜单,原先没有,鼠标经过,显示下拉菜单, 应用极为广泛
只是隐藏超出大小的部分 1. 可以清除浮动 2. 保证盒子里面的内容不会超出该盒子范围

2.CSS用户界面样式

 设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状。 例如:cursor = “pointer”;
 是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。 
实际应用场景中:文本域右下角是不可以拖拽:

2.4用户样式界面总结

样式很多,重点记住 pointer
outline 轮廓线,我们一般直接去掉,border是边框,我们会经常用
主要针对文本域resize 防止用户随意拖拽文本域,造成页面布局混乱,我们resize:none


设置或检索对象内容的垂直对其方式。
vertical-align 不影响块级元素中的内容对齐,它只针对于行内元素或者行内块元素,特别是行内块元素, 通常用来控制图片/表单与文字的对齐

3.1 图片表单和文字对齐

3.2 去除图片底侧空白缝隙

图片或者表单等行内块元素,他的底线会和父级盒子的基线对齐。
就是图片底侧会有一个空白缝隙。

4.溢出的文字省略号表示

white-space设置或检索对象内文本显示方式。通常我们使用于强制一行****显示内容
white-space:nowrap ; 强制在同一行内显示所有文本,直到文本结束或者遭遇br标签对象才换行。

设置或检索是否使用一个省略标记(...)标示对象内文本的溢出

注意: 一定要首先强制一行内显示,再次和overflow属性 搭配使用

4.3文字省略号三步骤

 /*1. 先强制一行内显示文本*/
 /*3. 文字用省略号替代超出的部分*/

5.1为什么要使用精灵图

图所示为网页的请求原理图,当用户访问一个网站时,需要向服务器发送请求,网页上的每张图像都要经过一次请求才能展现给用户。
然而,一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接受和发送请求,这将大大降低页面的加载速度。
为了有效地减少服务器接受和发送请求的次数,提高页面的加载速度。

CSS 精灵其实是将网页中的一些背景图像整合到一张大图中(精灵图),然而,各个网页元素通常只需要精灵图中不同位置的某个小图,要想精确定位到精灵图中的某个小图。
当用户访问该页面时,只需向服务发送一次请求,网页中的背景图像即可全部展示出来。

首先我们知道,css精灵技术主要针对于背景图片,插入的图片img 是不需要这个技术的。

  1. 精确测量,每个小背景图片的大小和 位置。
  2. 给盒子指定小背景图片时, 背景定位基本都是 负值。
  1. a 设置 背景左侧,padding撑开合适宽度。
  2. span 设置背景右侧, padding撑开合适宽度 剩下由文字继续撑开宽度。
  3. 之所以a包含span就是因为 整个导航都是可以点击的。

1)负边距+定位:水平垂直居中
一个绝对定位的盒子, 利用 父级盒子的 50%, 然后 往左(上) 走 自己宽度的一半 ,可以实现盒子水平垂直居中。
2)压住盒子相邻的边框

  1. 我们用css 边框可以模拟三角效果
  2. 我们4个边框都要写, 只保留需要的边框颜色,其余的不能省略,都改为 transparent 透明就好了
}

CSS 指层叠样式表Cascading Style Sheets),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,起装饰作用。前者(如 HTML)负责确定网页中有哪些内容,CSS 则确定以何种外观(大小、粗细、颜色、对齐和位置)展现这些元素。

  • 样式定义如何显示 HTML 元素;
  • 样式通常存储在样式表中;
  • 把样式添加到 HTML 中,是为了解决内容与表现分离的问题
  • 外部样式表可以极大提高工作效率;
  • 外部样式表通常存储在 CSS 文件中;
  • 多个样式定义可层叠为一;
  • 样式对网页中元素位置的排版进行像素级精确控制。

样式层叠就是对一个元素多次设置同一个样式,这将使用最后一次设置的属性值。

一般而言,所有的样式会根据下面的规则层叠于一个新的虚拟样式表中,按优先级从高到低依次为:

  1. 内联样式(在 HTML 元素内部)

CSS 规则由两个主要的部分构成——选择器,以及一条或多条声明:

选择器通常是需要改变样式的 HTML 元素。

每条声明由一个属性和一个值组成。

属性(property)是希望设置的样式属性。每个属性有一个值。属性和值由冒号分开。

CSS 声明总是以分号 ; 结束,声明组以大括号 {} 括起来。

注释用来解释代码,并且可以随意编辑。浏览器会忽略它。

/* 这是另一个注释 */

在描述颜色的时候,除了使用英文单词 red,还可以使用十六进制的颜色值 #ff0000:

为了节约字节,可以使用 CSS 的缩写形式:

还可以通过两种方法使用 RGB 值:

当使用 RGB 百分比时,即使当值为 0 时也要写百分比符号。但是在其他的情况下就不需要这么做了。比如当尺寸为 0 像素时,0 之后不需要使用 px 单位。

如果要在 HTML 元素中设置 CSS 样式,需要在元素中设置 idclass 选择器。

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。

以下的样式规则应用于属性 id 为 para1 的元素:

ID 属性不要以数字开头;只能在每个 HTML 文档中出现一次。

class 选择器用于描述一组元素的样式。

class 选择器有别于 id 选择器,class 可以在多个元素中使用。

在下面这个例子中,所有拥有 center 类的 HTML 元素均为居中:

也可以指定特定的 HTML 元素使用 class。下面这个示例中,所有的 p 元素使用 class="center" 让该元素的文本居中:

同样,类名的第一个字符也不能使用数字。

插入样式表的方法有三种:

当样式需要应用于很多页面时,外部样式表将是理想的选择。在使用外部样式表的情况下,可以通过改变一个文件来改变整个站点的外观。每个页面使用标签链接到样式表。标签在(文档的)头部:

浏览器会从文件 mystyle.css 中读到样式声明,并根据它来格式文档。

下面是一个外部样式表的例子:

不要在属性值与单位之间留有空格。

当单个文档需要特殊的样式时,就应该使用内部样式表。可以使用 <style> 标签在文档头部定义内部样式表,就像这样:

由于要将表现和内容混杂在一起,内联样式会损失掉样式表的许多优势。请慎用这种方法,例如当样式仅需要在一个元素上应用一次时。

要使用内联样式,需要在相关的标签内使用样式(style)属性。style 属性可以包含任何 CSS 属性。本例展示如何改变段落的颜色和左外边距:

如果某些属性在不同的样式表中被同样的选择器定义,那么属性值将从更具体的样式表中被继承过来。

例如,外部样式表拥有针对 h3 选择器的三个属性:

而内部样式表拥有针对 h3 选择器的两个属性:

假如拥有内部样式表的这个页面同时与外部样式表链接,那么 h3 得到的样式是:

即颜色属性将被继承于外部样式表,而文字排列和字体尺寸会被内部样式表中的规则取代。

下列是一份选择器列表,优先级从高到低依次是:

!important 规则被应用在一个样式声明中时,该样式声明会覆盖 CSS 中任何其他的声明,无论它处在声明列表中的哪里。尽管如此,!important 规则还是与优先级毫无关系。使用 !important 不是一个好习惯,因为它改变了样式表本来的级联规则,从而使其难以调试。

  • 要优化考虑使用样式规则的优先级来解决问题而不是 !important
  • 只在需要覆盖全站或外部 CSS(例如引用的 ExtJs 或者 YUI )的特定页面中使用 !important
  • 选择器都有一个权值,权值越大越优先;
  • 当权值相等时,后出现的样式表设置要优于先出现的样式表设置;
  • 创作者的规则高于浏览者:即网页编写者设置的 CSS 样式的优先权高于浏览器所设置的样式;
  • 继承的 CSS 样式不如后来指定的 CSS 样式;
  • 在同一组属性设置中标有 !important 规则的优先级最大。

CSS 背景属性用于定义 HTML 元素的背景。

简写属性,作用是将背景属性设置在一个声明中
背景图像是否固定或者随着页面的其余部分滚动
设置背景图像的起始位置
设置背景图像是否及如何重复

页面的背景颜色使用在 body 的选择器中:

可以为所有元素设置背景色,包括 body 一直到 ema 等行内元素。

background-color 不能继承,其默认值是 transparent。如果一个元素没有指定背景色,那么背景就是透明的,这样其父元素的背景才可见。

默认情况下,背景图像进行平铺重复显示,以覆盖整个元素实体。

默认情况下 background-image 属性会在页面的水平或者垂直方向平铺。

下面是设置仅水平平铺的例子:

为了让页面排版更加合理,不影响文本的阅读,可以改变图像的位置,利用 background-position 属性:

不同类型的值对于背景图像的放置稍有差异。

图像放置关键字的作用顾名思义。例如, top left 使图像放置在元素内边距区的左上角。

只要保证不超过两个关键字:一个对应水平方向,另一个对应垂直方向。那么可以设置位置关键字以任何顺序出现。

如果只有一个关键字,则会默认另一个关键字为 center

所以,如果希望每个段落的中部上方出现一个图像,只需声明如下:

百分数值的表现方式更为复杂。

假设希望用百分数值将图像在其元素中居中,可以按照下面的代码进行设置:

这会使图像适当放置,其中心与其元素的中心对齐。

因此,如果想把一个图像放在水平方向 、垂直方向 处,可以这样声明:

长度值解释的是元素内边距区左上角的偏移,偏移点是图像的左上角。

比如,如果设置值为 50px 100px,图像的左上角将在元素内边距区左上角向右 50 像素、向下 100 像素的位置上:

注意,这一点与百分数值不同,因为偏移只是从一个左上角到另一个左上角。也就是说,图像的左上角与 background-position 声明中的指定的点对齐。

在以上的许多示例中可以看到页面的背景通过了很多的属性来控制。

为了简化这些属性的代码,可以将这些属性合并在同一个属性中。

当使用简写属性时,属性值的顺序为:

以上属性无需全部使用,可以按照页面的实际需要使用。

通过 CSS 的文本属性,可以改变页面中文本的颜色、字符间距、对齐文本、装饰文本、对文本进行缩进等等。

颜色属性用来设置文字的颜色。

如果定义了颜色属性,还必须定义背景色属性。一个网页的背景颜色是指在主体内的选择:

文本排列属性用来设置文本的水平对齐方式。

文本可居中、对齐到左或右、两端对齐。

text-align 设置为 justify,每一行展开为宽度相等,左、右外边距对齐(如杂志和报纸)。

如果想把一个行内元素的第一行“缩进”,可以用左内边距或外边距创造这种效果。

从设计的角度看 text-decoration 主要用来删除链接的下划线:

不建议强调指出不是链接的文本,因为这常常使用户感到混淆。

文本转换属性用来指定在一个文本中的大写和小写字母。

可用于所有字句变成大写或小写字母,或每个单词的首字母大写。

文本缩进属性用来指定文本第一行的缩进。

CSS 提供了 text-indent 属性,该属性可以方便地实现文本缩进。

通过使用 text-indent 属性,所有元素的第一行都可以缩进一个给定的长度。

word-spacing 属性可以改变字(单词)之间的标准间隔。其默认值 normal 与设置值为 0 是一样的。

设置或返回文本是否被重写

CSS 字体属性定义字体、加粗、大小、文字样式。

在 CSS 中,有两种类型的字体系列名称:

  • 通用字体系列。拥有相似外观的字体系统组合;
  • 特定字体系列。特定的字体系列。

font-family 属性应该设置几个字体名称作为一种“后备”机制。如果浏览器不支持第一种字体,将尝试下一种字体。

多个字体系列用逗号分隔指明:

主要用于指定斜体文字的字体样式属性。

  • 斜体。以斜体字显示的文字;
  • 倾斜的文字。文字向一边倾斜(和斜体非常类似,但不太支持)。
  • 斜体(italic)是一种简单的字体风格,对每个字母的结构有一些小改动,来反映变化的外观。
  • 倾斜(oblique)文本是正常竖直文本的一个倾斜版本。

通常情况下,italic 和 oblique 文本在网页浏览器中看上去完全一样。

字体大小的值可以是绝对或相对的大小。

如果不指定字体的大小,默认大小和普通文本段落一样,为 16 像素(16 px = 1 em)。

设置文字的大小与像素,完全控制文字大小:

使用百分比和 em 组合

在所有浏览器的解决方案中,设置 <body> 元素的默认字体大小的是百分比:

在一个声明中设置所有的字体属性
以小型大写字体或者正常字体显示文本

不同的链接可以有不同的样式。

链接的样式,可以用任何 CSS 属性(如颜色、字体、背景等)。

特别的链接,可以有不同的样式,这取决于它们是什么状态。

  • a:link:正常,未访问过的链接
  • a:visited:用户已访问过的链接
  • a:hover:当用户鼠标放在链接上时
  • a:active:链接被点击的那一刻

当设置为若干链接状态的样式,也有一些顺序规则:

下面的示例将链接显示为方框。

CSS 列表属性作用如下:

  • 设置不同的列表项标记为有序列表;
  • 设置不同的列表项标记为无序列表;
  • 设置列表项标记为图像。

在 HTML 中,有无序列表和有序列表两种。

使用 CSS,可以列出进一步的样式,并可用图像作列表项标记。

示例中,一些值是无序列表,以及有些是有序列表。

  • none:不使用项目符号

要指定列表项标记的图像,使用列表样式图像属性:

利用 list-style-position 可以确定标志出现在列表项内容之外还是内容内部。

在单个属性中可以指定所有的列表属性。这就是所谓的缩写属性。

为列表使用缩写属性,列表样式属性设置如下:

使用缩写属性值的顺序是:

如果上述值丢失一个,其余仍在指定的顺序,就没关系。

简写属性。用于把所有用于列表的属性设置于一个声明中
将图像设置为列表项标志
设置列表中列表项标志的位置

使用 CSS 可以大大提高 HTML 表格的外观。

下面的例子指定了一个表格的 thtd 元素的黑色边框:

在上面的例子中的表格有双边框,这是因为表和 th/td 元素有独立的边界。

为了显示一个表的单个边框,使用 border-collapse 属性。

border-collapse 属性设置表格的边框是否被折叠成一个单一的边框或隔开:

下面的例子是设置宽度 100%、th 元素高度 50 像素的表格:

表格中的文本对齐和垂直对齐属性。

text-align 属性设置水平对齐方式,如左、右或中心:

垂直对齐属性设置垂直对齐,比如顶部、底部或中间:

如果在表的内容中控制空格之间的边框,应使用 tdth 元素的填充属性:

下面的例子指定边框的颜色,以及 th 元素的文本和背景颜色:

所有 HTML 元素可以看作盒子。在 CSS 中,“盒子模型”这一术语是在设计和布局时使用的。

CSS 盒子模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边距、边框、填充和实际内容。

盒子模型允许在其它元素和周围元素边框之间的空间放置元素。

下面的图片说明了盒子模型:

  • Margin(外边距):清除边框区域。Margin 没有背景颜色,它是完全透明的;
  • Border(边框):边框周围的填充和内容。边框受到盒子的背景颜色影响;
  • Padding(内边距):清除内容周围的区域。会受到框中填充的背景颜色影响;
  • Content(内容):盒子的内容,显示文本和图像。

在盒子模型中,外边距可以是负值,而且在很多情况下都要使用负值的外边距。

当指定一个 CSS 元素的宽度和高度属性时,只是设置了内容区域的宽度和高度。要知道,完全大小的元素还必须添加填充、边框和边距。

下面的例子中的元素的总宽度为 300 px:

下面设置总宽度为 250 像素的元素:

  • 元素的总宽度计算公式:

    总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距。

  • 元素的总高度计算公式:

    总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距。

CSS 边框可以是围绕元素内容和内边距的一条或多条线,对于这些线条,可以自定义它们的样式、宽度以及颜色。使用 CSS 边框属性,可以创建出比 HTML 中更加优秀的效果。

边框样式属性指定要显示什么样的边界。border-style 属性用来定义边框的样式。

  • none:默认无边框;
  • solid:实线边界;
  • groove:3D 沟槽边界。效果取决于边界的颜色值;
  • ridge:3D 脊边界。效果取决于边界的颜色值;
  • inset:3D 嵌入边框。效果取决于边界的颜色值;
  • outset:3D 突出边框。效果取决于边界的颜色值。

为边框指定宽度有两种方法:可以指定长度值,比如 2 px 或 0.1 em;或者使用三个关键字之一,它们分别是 thinmedium(默认值) 和 thick

border-color 属性用于设置边框的颜色,它一次可以接受最多 4 个颜色值。

在 CSS 中,可以指定不同的侧面不同的边框:

上面的例子也可以设置一个单一属性:

边框颜色值 transparent 用于创建有宽度的不可见边框。

利用 transparent,使用边框就像是额外的内边距一样;此外还有一个好处,就是能在需要的时候使其可见。这种透明边框相当于内边距,因为元素的背景会延伸到边框区域(如果有可见背景的话)。

上面的例子用了很多属性来设置边框。也可以在一个属性中设置边框。

可以在 border 属性中设置:

元素所有边框的样式,或者单独地为各边设置边框样式
为元素的所有边框设置宽度,或者单独地为各边边框设置宽度
元素的所有边框中可见部分的颜色,或为四个边分别设置颜色
设置元素的右边框的颜色
设置元素的右边框的样式
设置元素的右边框的宽度
设置元素的上边框的颜色
设置元素的上边框的样式
设置元素的上边框的宽度

轮廓是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。

轮廓属性指定了样式、颜色和外边框的宽度。

轮廓属性的位置让它不像边框那样参与到文档流中,因此轮廓出现或消失时不会影响文档流,即不会导致文档的重新显示。

由于轮廓是元素周围的线条,所以可以利用此来画线,使用 outline 元素。

CSS 外边距定义元素周围的空间。

margin 属性接受任何长度单位、百分数值甚至负值。

margin 清除周围的元素(外边框)的区域。margin 没有背景颜色,是完全透明的。

margin 可以单独改变元素的上、下、左、右边距。也可以一次改变所有的属性。

自动设置浏览器边距。这样做的结果会依赖于浏览器
固定的外边距(使用像素、pt、em 等)

CSS 填充属性定义元素边框与元素内容之间的空间。

当元素的 padding(填充)被清除时,所“释放”的区域将会受到元素背景颜色的填充。

单独使用填充属性可以改变上下左右的填充。缩写填充属性也可以使用,一旦改变,一切都改变。

padding 属性可以使用长度值或百分比值。但与 margin 属性不同,它不允许使用负值。

padding 属性的百分比数值是相对于其父元素 width 计算的。如果改变了父元素 width,则它们也会改变。

以下是将段落的内边距设置为父元素 width 的 20% 的示例:

假设一个段落的父元素是 div 元素,那么它的 paddingwidth 计算是根据 div 进行的:

上下内边距与左右内边距一致,即上下内边距的百分数会相对于父元素宽度设置,而不是相对于高度。

在 CSS 中,可以指定不同的侧面不同的填充:

padding 属性可以有一到四个值:

  • 所有的填充都是 25 px

CSS 分组可以将具有相同样式的选择器进行分组,减少代码量。

CSS 嵌套适用于选择器内部的选择器的样式。

在样式表中有很多具有相同样式的元素:

为了尽量减少代码,可以使用分组选择器,每个选择器用逗号分隔。

在下面的例子中,对以上代码使用分组选择器:

可以对任意多个选择器进行分组,CSS 对此没有限制。

适用于选择器内部的选择器的样式。

在下面的例子中,为所有 p 元素指定一个样式,为 class="marked" 的元素指定样式,并仅为该类内的 p 元素指定第三个样式:

display 属性和 visibility 属性都可以用来隐藏某个元素,但是这两个属性有不同的定义。

前者设置一个元素应如何显示,后者指定一个元素应可见还是隐藏。

隐藏一个元素可以通过把 display 属性设置为 none,或把 visibility 属性设置为 hidden。这两种方法会产生不同的结果。

visibility: hidden 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。

display: none 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。

可以更改内联元素为块元素,反之亦然,可以使页面看起来是以一种特定的方式组合,并仍然遵循 Web 标准。

下面的示例把列表项显示为内联元素:

下面的示例把 span 元素显示为块元素:

变更元素的显示类型看该元素是如何显示,它是什么样的元素。例如:一个内联元素设置为 display: block 不允许有它内部的嵌套块元素。

CSS 定位属性允许为一个元素定位。它也可以将一个元素放在另一个元素后面,并指定一个元素的内容太大时,应该发生什么。

元素可以使用顶部、底部、左侧和右侧属性定位。然而,这些属性无法工作,除非事先设定 position 属性。它们也有不同的工作方式,这取决于定位方法。

有四种不同的定位方法。

HTML 元素的默认值,即没有定位,元素出现在正常的流中。

静态定位的元素不会受到顶部、底部、左侧和右侧属性影响。

元素的位置相对于浏览器窗口是固定位置。即使窗口是滚动的它也不会移动:

固定定位使元素的位置与文档流无关,因此不占据空间。

固定定位的元素和其他元素重叠。

相对定位元素的定位是相对其正常位置而言的。

可以移动的相对定位元素的内容和相互重叠的元素,它原本所占的空间不会改变。

相对定位元素经常被用来作为绝对定位元素的容器块。

绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于 <html>

绝对定位使元素的位置与文档流无关,因此不占据空间。

绝对定位的元素和其他元素重叠。

元素的定位与文档流无关,所以可以覆盖页面上的其它元素。

z-index 属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面)。

一个元素可以有正数或负数的堆叠顺序:

具有更高堆叠顺序的元素总是在较低的堆叠顺序元素的前面。

如果两个定位元素重叠,且没有指定 z-index,最后定位在 HTML 代码中的元素将被显示在最前面。

定位元素下外边距边界与其包含块下边界之间的偏移
剪辑一个绝对定位的元素
显示光标移动到指定的类型
定位元素左外边距边界与其包含块左边界之间的偏移
当元素的内容溢出其区域时发生的事情
定位元素右外边距边界与其包含块右边界之间的偏移
定位元素上外边距边界与其包含块上边界之间的偏移

float 属性定义元素在哪个方向浮动,浮动元素会生成一个块级框,直到该块级框的外边缘碰到包含框或者其它的浮动框为止。

CSS 的 float(浮动)会使元素向左或向右移动,其周围的元素也会重新排列。

浮动往往用于图像,但它在布局时一样非常有用。

元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。

一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

浮动元素之后的元素将围绕它。

浮动元素之前的元素将不会受到影响。

如果图像是右浮动,下面的文本流将环绕在它左边:

把几个浮动的元素放到一起,如果有空间的话,它们将彼此相邻。

下面的示例对图片廊使用 float 属性:

元素浮动之后,周围的元素会重新排列。为了避免这种情况,使用 clear 属性。

clear 属性指定元素两侧不能出现浮动元素。

使用 clear 属性往文本中添加图片廊:

不允许元素周围有浮动元素
盒子(元素)是否可以浮动

关于 CSS 中元素的水平对齐,可以使用多种属性来进行设置。

块元素的对齐可以使用 text-align 属性。

使用 margin 属性设置中心对齐

块元素可以把左、右页边距设置为“自动”对齐。

margin 属性可任意拆分为左、右页边距设置自动指定,结果都是出现居中元素:

需要注意的是,如果宽度是 100%,对齐是没有效果的。

元素对齐的方法之一是使用绝对定位:

绝对定位与文档流无关,所以可以覆盖页面上的其它元素。

使用 float 属性设置左右对齐

使用 float 属性是对齐元素的方法之一:

使用 padding 设置垂直居中对齐

CSS 中一个简单的设置垂直居中对齐的方式就是头部顶部使用 padding

CSS 组合选择符可以直观地显示选择器与选择器之间的关系。

组合选择符说明了两个选择器直接的关系。

CSS 组合选择符包括各种简单选择符的组合方式。

在 CSS3 中包含了四种组合方式:

  • 后代选取器。以空格分隔;
  • 子元素选择器。以大于号分隔;
  • 相邻兄弟选择器。以加号分隔;
  • 普通兄弟选择器。以波浪号分隔;

后代选取器匹配所有指定元素的后代元素。

与后代选择器相比,子元素选择器只能选择某元素的子元素。

相邻兄弟选择器可选择紧接在另一元素后的元素,且二者有相同父元素。

普通兄弟选择器选取所有指定元素之后的兄弟元素。

伪类用来添加一些选择器的特殊效果。

由于状态的变化是非静态的,所以元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。由此可以看出,它的功能和类有些类似,但它是基于文档之外的抽象,所以叫伪类。

CSS 类也可以使用伪类:

伪类可以与 CSS 类配合使用:

可以使用 :first-child 伪类来选择元素的第一个子元素。

把鼠标放在链接上的状态
选择元素输入后具有焦点
选择每个 <p> 元素的第一个字母
选择属于任意元素的第一个子元素的 <p> 元素

伪元素用来添加一些选择器的特殊效果。

伪元素控制的内容和元素是没有差别的,但是它本身只是基于元素的抽象,并不存在于文档中,所以称为伪元素。

CSS 类也可以使用伪类:

first-line 伪元素用于向文本的首行设置特殊样式。

在下面的例子中,浏览器会根据 first-line 伪元素中的样式对 p 元素的第一行文本进行格式化:

first-line 伪元素只能用于块级元素。

first-letter 伪元素用于向文本的首字母设置特殊样式:

伪元素可以结合 CSS 类:

上面的例子会使所有类为 article 的段落的首字母变为红色。

可以结合多个伪元素来使用。

在下面的例子中,段落的第一个字母将显示为红色,其字体大小为 xx-large。第一行中的其余文本将为蓝色,并以小型大写字母显示。段落中的其余文本将以默认字体大小和颜色来显示:

把鼠标放在链接上的状态
选择元素输入后具有焦点
选择每个 <p> 元素的第一个字母
选择属于任意元素的第一个子元素的 <p> 元素

熟练使用导航栏,对于任何网站都非常重要。

使用 CSS,可以转换成好看的导航栏而不是枯燥的 HTML 菜单。

作为标准的 HTML 基础,一个导航栏是必需的。

在下面的例子中,将建立一个标准的 HTML 列表导航栏。

导航条基本上是一个链接列表,所以使用 <ul><li> 元素非常有意义:

现在从列表中删除边距和填充:

  • list-style-type: none:移除列表前的小标志。一个导航栏并不需要列表标记;
  • 移除浏览器的默认设置,将边距和填充设置为 0。

上面例子中的代码是垂直和水平导航栏使用的标准代码。

上面的代码,只需要元素的样式,建立一个垂直的导航栏:

  • display: block:显示块元素的链接,让整体变为可点击链接区域(不只是文本),它允许指定宽度;
  • width: 60px:块元素默认情况下是最大宽度。这里指定一个 60 像素的宽度。

有两种方法创建横向导航栏——使用内联浮动的列表项。

这两种方法都很好,但如果想链接到具有相同的大小,则必须使用浮动的方法。

建立一个横向导航栏的方法之一是指定元素,下面的代码是标准的内嵌:

默认情况下,<li> 元素是块元素。这里删除换行符之前和之后每个列表项,以显示一行。

在上面的例子中,链接有不同的宽度。

对于所有的链接,指定宽度相等,设置为浮动元素,并指定为元素的宽度:

  • float: left:使用浮动块元素的幻灯片彼此相邻;
  • display: block:显示块元素的链接,让整体变为可点击链接区域(不只是文本),它允许指定宽度;
  • width: 60px:块元素默认情况下是最大宽度。这里指定一个 60 像素的宽度。

下面将使用 CSS 创建一个鼠标移动上去后显示下拉菜单的效果。

当鼠标移动到指定元素上时,会出现下拉菜单。

  • 使用容器元素(如 <div>)来创建下拉菜单的内容,并放在任何位置上。

    使用 <div> 元素来包裹这些元素,并使用 CSS 来设置下拉内容的样式。

  • .dropdown-content 类中是实际的下拉菜单。默认是隐藏的,在鼠标移动到指定元素后会显示。注意 min-width 的值设置为 160 px,这可以随意修改。如果想设置下拉内容与下拉按钮的宽度一致,可设置 width 为 100%(overflow: auto 设置可以在小尺寸屏幕上滚动)。

    使用 box-shadow 属性让下拉菜单看起来像一个“卡片”。

    :hover 选择器用于在用户将鼠标移动到下拉按钮上时显示下拉菜单。

创建下拉菜单,并允许用户选取列表中的某一项。

这个示例类似于前面的示例,只不过在下拉列表中添加了链接,并设置了样式:

/* 下拉菜单的链接 */ /* 鼠标移上去后修改下拉菜单链接颜色 */ /* 在鼠标移上去后显示下拉菜单 */ /* 当下拉内容显示后修改下拉按钮的背景颜色 */

如果想设置右浮动的下拉菜单内容方向是从右到左,而不是从左到右,可以添加以下代码:

使用 CSS 很容易创建透明的图像。

浏览器使用透明度属性可以将图像变得不透明。opacity 属性值从 0.0 到 1.0。值越小,元素更加透明。

顾名思义,属性选择器就是指可以根据元素的属性以及属性值来选择元素。

具有特定属性的 HTML 元素样式不仅仅是 class 和 id。

下面的例子把包含 title 的所有元素变为蓝色:

属性和值的选择器-多值

下面是包含指定值的 title 属性的元素样式的例子,使用 ~ 分隔属性和值:

下面是包含指定值的 lang 属性的元素样式的例子,使用 | 分隔属性和值:

属性选择器样式无需使用 class 或 id 的形式:

}

css样式表的引入方式

table身上的属性:

cellpadding:单元格的内容与其边框的内边距

border-collaspe:collaspe:边框合并,不叠加 cellspacing:0:边框合并,但合并之后的边框宽度等于 前两个边框宽度之和

width:单元格宽度height:单元格高度
nowrap:在为设置单元格宽度时,当文本长度宽于单元格宽度,将要换行时,该标签会使其不换行

表格的跨行与跨列【td】

rowspan:跨行标签,表示跨了多少行
colspan:跨列标签,表示跨了多少列

thead:定义表格的表头。

tbody:定义表格主体(正文)。

tfoot:定义表格的页脚(脚注或表注)。

colgroup:标签用于对表格中的列进行组合,以便对其进行格式化。

注意:不管thead、tbody、tfoot的代码先后顺序如何,html显示时,始终是先显示thead,再显示tbody,最后显示tfoot。

action:表单信息提交的位置;

get:地址栏,信息量少,安全性低

post:信息量多,比较安全

1.输入文本【输入框】:

name:本文本框的名字,与后台进行数据交互用

class:定义本文本框的样式,相当于盒子

2.输入密码【密码框】:

3.单选按钮[name的值必须相同]:

4.多选按钮[name的值必须相同]:

5.下拉列表【下拉框】:

8.用户是否允许重新设置textarea大小css属性:

autoplay当前页面加载完自动播放

3. text:文档中文字的颜色

5. alink:正在访问的超链接的颜色

6. vlink:已访问过的超链接的颜色

[字符实体]常用的转义字符
显示结果 描述 实体名称

*{}//选择所有的标签

#id名{} //选择页面中id为**的标签

Ehover .子类{ } 选择e元素下鼠标移入时子类的变化

获取焦点,用于表单的输入

E:first-child{} 作为子元素的第一个孩子的E标签

E:last-child{} 作为子元素的最后第一个孩子的E标签

E:first-of-type{} 作为子元素的同类型的第一元素

E:last-of-type{} 作为子元素的同类型中的最后一个元素

例子:5.15/伪结构选择器

content:“内容之前”;

E1+E2{} 选择E1的下一个兄弟元素E2(不能选中上一个兄弟元素)

[属性名]{} 选择所有拥有属性为 属性名 的元素

[属性名=“value”]{} 选择拥有属性名的属性 且属性值为value

E[属性名=“value”]{} 选择拥有属性名的属性 且属性值为valueE元素

E[属性名~=“value”]{} 选择拥有属性名的属性 并且属性值一个或者多个,其中一个属性值为valueE元素

E[value^=“1”]{} 选择拥有 value的属性 并且属性值一个或者多个,其中一个属性值以 1 开头的E元素

E[value$=“1”]{} 选择拥有 value的属性 并且属性值一个或者多个,其中一个属性值以 1 结尾的E元素

E[value*=“1”]{} 选择拥有 value的属性 并且属性值一个或者多个,其中一个属性值包含 1 的E元素

abcde优先级(e为个位):

c:类名选择器 伪类选择器(:hover) 属性选择器

d:标签选择器 伪元素选择器 (::after)

选择有中有一个abcde在其位置+1

视口:视觉视口,布局视口,理想视口

未完待续,感谢关注好程序员前端知识点分享!

}

我要回帖

更多关于 css选父元素 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信