首页 web前端 css教程 css属性总结

css属性总结

Feb 15, 2017 pm 01:30 PM
css

- 仅作用于块级元素的属性

width,height(这俩可用于替换元素)

text—align, text—indent, vertical—align(也可用于表单元格和替换元素如input/img)

background-position(注意百分数和绝对值的区别,同时这个属性会影响平铺效果)


[基本视觉格式化]

1. 框模型
  - background包括内容框、内边距和边框,外边距通常是透明的,显示父元素的背景;

2. 水平属性

-子元素的左(右)margin,左(右)padding,左(右)border和内容框width的值加起来必须等于父元素的内容框width;

-如果设置margin—left,margin-right,width(只有这三个值可以设置为auto)之中的两个为特定值,余下的那个为auto,则设置为auto的属性值会自动计算以填充父元素的width:

 * 如果三个值都为非auto的特定值(over constrained),那么margin-right会被强制设置为auto;
 * 如果margin中某一个设置为auto,另一个设置特定值,width设置为auto,则设置为auto的margin会被置为0;
 * 如果width设置为特定值,两个margin设置为auto,则会**水平居中**!!
登录后复制
登录后复制

- 父元素的padding会跟子元素的margin叠加;

- 非替换元素的默认宽度由其内容决定;为替换元素设置width为auto(如img),那么其值将会是其本来的宽度;如果只设置width,那么height会等比例变化,反之亦然。

3. 垂直属性

与水平属性类似,不同点/注意点:

- 如果将margin-top或margin-bottom设置为auto,则会被默认为0,因此不能垂直居中囧,除非用特定值显示设置;
  - 使用百分数设置子元素height时,如果没有显示设置父元素的height值,那么子元素height会默认为auto;
  - 如果父元素只包含子块级元素,那么父元素的height将不包含子元素的margin,除非父元素有border或padding!!为什么呢,因为垂直方向上的margin会重叠。由此看来,要避免重叠,就需要使用border和padding来讲相邻margin隔开哦;

行内元素
  - line-height(行框高度)对于替换元素而言,就是其内容的高度。因此替换元素无行间距(line-height - font-size);对于非替换元素而言,是其内容框高度加上行间距;
  - 对于只包含文本的行,能改变其行间距离的只有line-height, font-size, vertical-align。

非替换元素:

- 当line-height值小于font-size时可能会产生文本重叠,为避免此现象可设置line-height为1 em(需设置font-size)或1(根据font-size的缩放因子),此外它会继承父元素的计算值而不是字面值,除非显式定义;

- 行内元素的内边距、外边距和边框都不会影响行高。其中外边距只有左右有效,上下无效;但如有正的内边距且有背景,则有可能覆盖邻行(仍不影响行高和布局,就是说设置了内边距行高也不会变高);

替换元素:

- 行内元素的内边距、外边距和边框会影响行高,且上下margin有效。
  - 为img设置一个height值,会影响行高,但其line-height的有效值不会改变,有些属性例如vertical-align仍然是使用line-height有效值进行计算;
  - 如果一个替换元素是一个块级元素或表格单元格中的唯一后代,那么就会被放到基线上,例如p中的img。解决方法:使用负margin将其往下拉或者设置display为block来避免生成行框。

4. 其他

- display属性:

   * 设置元素display属性为inline-block时, 其表现类似行内替换元素;如果没有显式定义width,则它会自动收缩以适应内容宽度,也就是说会使其宽度刚好能包含所有内容且没有多余;
   * 设置元素display属性为run-in,表示如果该元素后面是一个display为block的元素,则该元素表现为行内元素放在后面那个元素的开头,否则其本身将显示为块级元素。
   * 对于浮动或绝对定位元素,计算值与声明值可能不同。除inline-table之外大部分声明值(包括inline,inline-block,run-in)都会被计算为block。
登录后复制
登录后复制

[border、margin、padding]

  1. margin
     - 如果使用百分数,则计算值是相对于父元素的width值(not height)而言。哪怕是margin-top也是!

  2. border
     - 不指定的值会使用默认值, e.x.:

    { border: solid 1px dotted;
      border: 1px;
    }
    登录后复制
    登录后复制

    此处第二条border设置会覆盖第一条,由于在第二条中没有设置border-style,默认为none,所以将不会有border;


[浮动和定位]

浮动:

  1. 浮动元素的margin不会合并;

  2. 假设要使一个非替换元素浮动,需要为其指定一个width,否则会按浏览器规定的最小width浮动;

  3. 浮动元素会生成一个块级框,而不论这个元素本身是什么;

  4. 浮动元素的顶端不能比其父元素或之前所有浮动元素的顶端更高;

  5. 当浮动元素与文档流中的元素重叠时:
      (1)如果是块级元素,则其内容会在浮动元素之上,而边框和背景则在之下;
      (2)如果是行内元素,则其内容、边框和背景都在浮动元素之上,即不会被覆盖。
      这与元素出现在文档流中的先后顺序无关。

  6. 浮动元素必须包含其所有的浮动子元素;

  7. 使用clear属性清除浮动时,例如clear: left,实际上是为设置clear属性的元素增加margin-top。因此,有可能即使该元素设置了margin-top,也会与浮动元素紧紧相连,除非margin-top的值足够大。要使两者之间有间隔,可以设置浮动元素的margin-bottom。

    定位:

  8. 绝对定位

    *如果父元素是块级元素且position的值为非static,则子元素absolute定位是其外边距外界相对于父元素的边框界定区域定位;
      *通过指定top, bottom, left, right的值,可以隐式指定元素的宽高;
      *除bottom外被设置成auto的属性,会默认与元素静态位置的对应值一致;
      *水平/垂直方向上,当元素过度受限时(left和right的值以及元素水平方向的各尺寸之和不等于父元素width),会忽略right/bottom的值。如果有设置为auto的属性,则改变其值来满足前等式,如果两个则平分,所以可以用来做居中(margin设为auto,其他值均为0)!
      *假设一个元素有设置z-index值,那么其所有子元素都是相对于这个叠放上下文来放置,并且css2.1中规定所有元素绝对不能放在其叠放上下文的背景之下,但可以在其内容之下;

  9. 固定定位
      *right的值总是等于-left,bottom的值总是等于-top。

持续更新中。。。。。

本文参考 《css权威指南》


- 仅作用于块级元素的属性

width,height(这俩可用于替换元素)

text—align, text—indent, vertical—align(也可用于表单元格和替换元素如input/img)

background-position(注意百分数和绝对值的区别,同时这个属性会影响平铺效果)


[基本视觉格式化]

1. 框模型
  - background包括内容框、内边距和边框,外边距通常是透明的,显示父元素的背景;

2. 水平属性

-子元素的左(右)margin,左(右)padding,左(右)border和内容框width的值加起来必须等于父元素的内容框width;

-如果设置margin—left,margin-right,width(只有这三个值可以设置为auto)之中的两个为特定值,余下的那个为auto,则设置为auto的属性值会自动计算以填充父元素的width:

 * 如果三个值都为非auto的特定值(over constrained),那么margin-right会被强制设置为auto;
 * 如果margin中某一个设置为auto,另一个设置特定值,width设置为auto,则设置为auto的margin会被置为0;
 * 如果width设置为特定值,两个margin设置为auto,则会**水平居中**!!
登录后复制
登录后复制

- 父元素的padding会跟子元素的margin叠加;

- 非替换元素的默认宽度由其内容决定;为替换元素设置width为auto(如img),那么其值将会是其本来的宽度;如果只设置width,那么height会等比例变化,反之亦然。

3. 垂直属性

与水平属性类似,不同点/注意点:

- 如果将margin-top或margin-bottom设置为auto,则会被默认为0,因此不能垂直居中囧,除非用特定值显示设置;
  - 使用百分数设置子元素height时,如果没有显示设置父元素的height值,那么子元素height会默认为auto;
  - 如果父元素只包含子块级元素,那么父元素的height将不包含子元素的margin,除非父元素有border或padding!!为什么呢,因为垂直方向上的margin会重叠。由此看来,要避免重叠,就需要使用border和padding来讲相邻margin隔开哦;

行内元素
  - line-height(行框高度)对于替换元素而言,就是其内容的高度。因此替换元素无行间距(line-height - font-size);对于非替换元素而言,是其内容框高度加上行间距;
  - 对于只包含文本的行,能改变其行间距离的只有line-height, font-size, vertical-align。

非替换元素:

- 当line-height值小于font-size时可能会产生文本重叠,为避免此现象可设置line-height为1 em(需设置font-size)或1(根据font-size的缩放因子),此外它会继承父元素的计算值而不是字面值,除非显式定义;

- 行内元素的内边距、外边距和边框都不会影响行高。其中外边距只有左右有效,上下无效;但如有正的内边距且有背景,则有可能覆盖邻行(仍不影响行高和布局,就是说设置了内边距行高也不会变高);

替换元素:

- 行内元素的内边距、外边距和边框会影响行高,且上下margin有效。
  - 为img设置一个height值,会影响行高,但其line-height的有效值不会改变,有些属性例如vertical-align仍然是使用line-height有效值进行计算;
  - 如果一个替换元素是一个块级元素或表格单元格中的唯一后代,那么就会被放到基线上,例如p中的img。解决方法:使用负margin将其往下拉或者设置display为block来避免生成行框。

4. 其他

- display属性:

   * 设置元素display属性为inline-block时, 其表现类似行内替换元素;如果没有显式定义width,则它会自动收缩以适应内容宽度,也就是说会使其宽度刚好能包含所有内容且没有多余;
   * 设置元素display属性为run-in,表示如果该元素后面是一个display为block的元素,则该元素表现为行内元素放在后面那个元素的开头,否则其本身将显示为块级元素。
   * 对于浮动或绝对定位元素,计算值与声明值可能不同。除inline-table之外大部分声明值(包括inline,inline-block,run-in)都会被计算为block。
登录后复制
登录后复制

[border、margin、padding]

  1. margin
     - 如果使用百分数,则计算值是相对于父元素的width值(not height)而言。哪怕是margin-top也是!

  2. border
     - 不指定的值会使用默认值, e.x.:

    { border: solid 1px dotted;
      border: 1px;
    }
    登录后复制
    登录后复制

    此处第二条border设置会覆盖第一条,由于在第二条中没有设置border-style,默认为none,所以将不会有border;


[浮动和定位]

浮动:

  1. 浮动元素的margin不会合并;

  2. 假设要使一个非替换元素浮动,需要为其指定一个width,否则会按浏览器规定的最小width浮动;

  3. 浮动元素会生成一个块级框,而不论这个元素本身是什么;

  4. 浮动元素的顶端不能比其父元素或之前所有浮动元素的顶端更高;

  5. 当浮动元素与文档流中的元素重叠时:
      (1)如果是块级元素,则其内容会在浮动元素之上,而边框和背景则在之下;
      (2)如果是行内元素,则其内容、边框和背景都在浮动元素之上,即不会被覆盖。
      这与元素出现在文档流中的先后顺序无关。

  6. 浮动元素必须包含其所有的浮动子元素;

  7. 使用clear属性清除浮动时,例如clear: left,实际上是为设置clear属性的元素增加margin-top。因此,有可能即使该元素设置了margin-top,也会与浮动元素紧紧相连,除非margin-top的值足够大。要使两者之间有间隔,可以设置浮动元素的margin-bottom。

    定位:

  8. 绝对定位

    *如果父元素是块级元素且position的值为非static,则子元素absolute定位是其外边距外界相对于父元素的边框界定区域定位;
      *通过指定top, bottom, left, right的值,可以隐式指定元素的宽高;
      *除bottom外被设置成auto的属性,会默认与元素静态位置的对应值一致;
      *水平/垂直方向上,当元素过度受限时(left和right的值以及元素水平方向的各尺寸之和不等于父元素width),会忽略right/bottom的值。如果有设置为auto的属性,则改变其值来满足前等式,如果两个则平分,所以可以用来做居中(margin设为auto,其他值均为0)!
      *假设一个元素有设置z-index值,那么其所有子元素都是相对于这个叠放上下文来放置,并且css2.1中规定所有元素绝对不能放在其叠放上下文的背景之下,但可以在其内容之下;

  9. 固定定位
      *right的值总是等于-left,bottom的值总是等于-top。

更多css属性总结 相关文章请关注PHP中文网!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

vue中怎么用bootstrap vue中怎么用bootstrap Apr 07, 2025 pm 11:33 PM

在 Vue.js 中使用 Bootstrap 分为五个步骤:安装 Bootstrap。在 main.js 中导入 Bootstrap。直接在模板中使用 Bootstrap 组件。可选:自定义样式。可选:使用插件。

HTML,CSS和JavaScript的角色:核心职责 HTML,CSS和JavaScript的角色:核心职责 Apr 08, 2025 pm 07:05 PM

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

了解HTML,CSS和JavaScript:初学者指南 了解HTML,CSS和JavaScript:初学者指南 Apr 12, 2025 am 12:02 AM

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

bootstrap怎么写分割线 bootstrap怎么写分割线 Apr 07, 2025 pm 03:12 PM

创建 Bootstrap 分割线有两种方法:使用 标签,可创建水平分割线。使用 CSS border 属性,可创建自定义样式的分割线。

bootstrap怎么插入图片 bootstrap怎么插入图片 Apr 07, 2025 pm 03:30 PM

在 Bootstrap 中插入图片有以下几种方法:直接插入图片,使用 HTML 的 img 标签。使用 Bootstrap 图像组件,可以提供响应式图片和更多样式。设置图片大小,使用 img-fluid 类可以使图片自适应。设置边框,使用 img-bordered 类。设置圆角,使用 img-rounded 类。设置阴影,使用 shadow 类。调整图片大小和位置,使用 CSS 样式。使用背景图片,使用 background-image CSS 属性。

bootstrap按钮怎么用 bootstrap按钮怎么用 Apr 07, 2025 pm 03:09 PM

如何使用 Bootstrap 按钮?引入 Bootstrap CSS创建按钮元素并添加 Bootstrap 按钮类添加按钮文本

bootstrap怎么设置框架 bootstrap怎么设置框架 Apr 07, 2025 pm 03:27 PM

要设置 Bootstrap 框架,需要按照以下步骤:1. 通过 CDN 引用 Bootstrap 文件;2. 下载文件并将其托管在自己的服务器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根据需要编译 Sass/Less;5. 导入定制文件(可选)。设置完成后,即可使用 Bootstrap 的网格系统、组件和样式创建响应式网站和应用程序。

bootstrap怎么调整大小 bootstrap怎么调整大小 Apr 07, 2025 pm 03:18 PM

要调整 Bootstrap 中元素大小,可以使用尺寸类,具体包括:调整宽度:.col-、.w-、.mw-调整高度:.h-、.min-h-、.max-h-

See all articles