CSS 是前端开发中不可或缺的一部分,用于控制网页的样式和布局。
虽然 CSS 看起来很简单,但实际上它有很多属性和特性,需要花费一定的时间和精力去学习和掌握。
本文将介绍一些常用的 CSS 属性,包括 `border`、`display`、`padding`、`margin`、`rem`、`em` 和 `box-sizing`。这些属性涵盖了 CSS 中的基本概念和常见用法,掌握它们可以让你在 CSS 中游刃有余,成为一名 CSS 大神。
CSS 属性用于设置 HTML 元素的盒模型。 盒模型是指元素的宽度和高度是由内容、内边距、边框和外边距组成的。 CSS 中有两种盒模型:内容盒模型和边框盒模型。 内容盒模型():元素的宽度和高度只包括内容, 不包括内边距、边框和外边距。这是默认的盒模型。 边框盒模型():元素的宽度和高度包括内容、 内边距和边框,不包括外边距。 使用 盒模型可以更方便地设置元素的宽度和高度, 因为不需要考虑内边距和边框的影响。 例如,如果要创建一个宽度为 px、内边距为 px、边框为 px 的盒子, 使用 盒模型需要将宽度设置为 px(200px × px × px), 而使用 盒模型只需要将宽度设置为 px。 以下代码展示了 属性的用法: div { width: px; height: px; padding: px; border: px solid ; margin: px; boxsizing: contentbox; } div. { boxsizing: borderbox; }
和 都是 CSS 中用于设置字体大小的单位,但它们的计算方式不同。 单位是相对于根元素(即 元素)的字体大小来计算的。 例如,如果根元素的字体大小为 px,那么 就等于 px, 就等于 px, 以此类推。 使用 单位可以方便地实现响应式设计, 因为根元素的字体大小可以根据屏幕尺寸或设备类型进行调整。 单位是相对于父元素的字体大小来计算的。例如,如果父元素的字体大小为 px, 那么 就等于 px, 就等于 px,以此类推。使用 单位 可以方便地实现相对大小的字体和布局,因为它们可以根据父元素的字体大小进行缩放。 以下代码展示了 和 单位的用法: html { fontsize: px; } h1 { fontsize: rem; } p { fontsize: rem; lineheight: em; } .container { fontsize: em; } .box { fontsize: em; padding: em; }
CSS 和 属性用于设置 HTML 元素的内边距和外边距: 、、、: 分别设置上、右、下、左四个方向的内边距。 : 设置上、右、下、左四个方向的内边距,可以使用一个、两个或四个值来设置。 、、、: 分别设置上、右、下、左四个方向的外边距。 : 设置上、右、下、左四个方向的外边距,可以使用一个、两个或四个值来设置。 : 自动计算内边距,使元素居中。 : 自动计算外边距,使元素居中。 : 设置盒模型为边框盒模型,即元素的宽度和高度包括内边距和边框,不包括外边距。 : 设置盒模型为内容盒模型,即元素的宽度和高度只包括内容,不包括内边距、边框和外边距。 以下展示了 和 属性的多种用法: div { paddingtop: px; paddingright: px; paddingbottom: px; paddingleft: px; } span { padding: px px; } p { margintop: px; marginright: px; marginbottom: px; marginleft: px; } a { margin: px px; } .center { padding: auto; margin: auto; width: px; height: px; backgroundcolor: ; } .box { boxsizing: borderbox; width: px; height: px; padding: px; border: px solid ; margin: px; } .content { boxsizing: contentbox; width: px; height: px; padding: px; border: px solid ; margin: px; }
CSS 的 display 属性用于设置元素的显示方式: :将元素显示为块级元素,即在页面中显示为一块矩形区域,可以设置宽度、高度、内边距和外边距等属性。 :将元素显示为行内元素,即在页面中显示为一行,不可以设置宽度、高度、内边距和外边距等属性。 :将元素显示为行内块级元素,即在页面中显示为一行,但可以设置宽度、高度、内边距和外边距等属性。 :将元素隐藏,不占用页面空间。 :将元素显示为弹性盒子,可以使用弹性盒子布局来排列子元素。 :将元素显示为网格容器,可以使用网格布局来排列子元素。 :将元素显示为表格,可以使用表格布局来排列子元素。 :将元素显示为列表项,通常用于 ul 和 ol 元素的子元素。 :继承父元素的 display 属性值。
CSS 的 position 属性用于设置元素的定位方式: :默认值,元素按照正常文档流排列,不进行定位。 :相对定位,元素相对于其正常位置进行定位,可以使用 top、right、bottom、left 属性来设置偏移量。 :绝对定位,元素相对于其最近的已定位祖先元素进行定位,如果没有已定位的祖先元素,则相对于 body 元素进行定位,可以使用 top、right、bottom、left 属性来设置偏移量。 :固定定位,元素相对于浏览器窗口进行定位,不随页面滚动而滚动,可以使用 top、right、bottom、left 属性来设置偏移量。 :粘性定位,元素在滚动到特定位置时变为固定定位,可以使用 top、right、bottom、left 属性来设置偏移量。
CSS 的 width 和 height 属性用于设置元素的宽度和高度: :默认值,元素的宽度或高度根据内容自适应。 :使用具体的长度值来设置元素的宽度或高度,如 。 :使用相对于父元素的百分比来设置元素的宽度或高度,如 。 :继承父元素的宽度或高度属性值。 除了这些基本用法,还可以使用其他一些属性来进一步控制元素的宽度和高度,例如: 和 :设置元素的最大宽度和最大高度,超过这个值时会自动缩小。 和 :设置元素的最小宽度和最小高度,小于这个值时会自动扩展。 :设置元素的盒模型,可以选择 (默认值,宽度和高度只包括内容,不包括内边距和边框)或 (宽度和高度包括内容、内边距和边框)。 和 :设置元素的内边距和外边距,会影响元素的实际宽度和高度。
CSS 的 、、 和 属性用于设置元素的最大宽度、最小宽度、最大高度和最小高度: :设置元素的最大宽度,超过这个宽度时会自动缩小。 可以使用具体的长度值或百分比来设置, 例如: 或 。 :设置元素的最小宽度,小于这个宽度时会自动扩展。 可以使用具体的长度值或百分比来设置, 例如: 或 。 :设置元素的最大高度,超过这个高度时会自动缩小。 可以使用具体的长度值或百分比来设置, 例如: 或 。 :设置元素的最小高度,小于这个高度时会自动扩展。 可以使用具体的长度值或百分比来设置, 例如: 或 。
CSS 属性用于设置 HTML 元素的边框样式、宽度和颜色: : 设置边框样式,如 、、、、、、、 或 。 : 设置边框宽度,如 、、 或具体的像素值。 : 设置边框颜色,如颜色名称、十六进制值或 RGB 值。 、、、: 分别设置上、右、下、左四个方向的边框样式、宽度和颜色。 : 设置边框圆角,如 或 。 : 设置边框图片,如 。
属性用于控制元素的堆叠顺序,即控制元素在层叠上下文中的显示顺序。具体用法如下: 设置元素的 值,值越大,元素越靠近顶部,即显示在其他元素的上方。 . { zindex: ; } 创建新的层叠上下文,通过设置 属性为 、 或 来创建新的层叠上下文。 . { position: relative; zindex: ; } 层叠上下文的嵌套,当一个元素的子元素设置了 值时,子元素会在父元素的上方显示。 . { position: relative; zindex: ; } .child { position: relative; zindex: ; } 注意: 属性只对设置了 属性的元素有效。
属性用于控制元素内容溢出时的处理方式。具体用法如下: (默认值):内容不会被修剪,会呈现在元素框之外。 :内容会被修剪,并且其余内容是不可见的。 :内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。 :如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。 注意: 属性只对设置了固定高度或宽度的元素有效。
CSS 伪类用于向某些选择器添加特殊的效果: :鼠标悬停在元素上时的效果。 a:hover { color: red; } :元素被激活时的效果,通常是鼠标点击时。 button:active { backgroundcolor: blue; } :元素获得焦点时的效果,通常是通过 Tab 键或鼠标点击输入框等元素时。 input:focus { border: px solid blue; } :选择元素的第一个子元素。 li:firstchild { fontweight: bold; } :选择元素的最后一个子元素。 li:lastchild { marginbottom: ; } :选择元素的第 n 个子元素。 li:nthchild() { color: red; } :选择元素的第 n 个指定类型的子元素。 p:nthoftype() { fontsize: px; } :选择不匹配指定选择器的元素。 :not(.special) { color: blue; }
CSS 伪元素用于向某些选择器添加特殊的效果, 它们可以创建一些不在文档树中的元素,并为其添加样式: :在元素的内容前面插入一个元素。 p::before { content: ; fontweight: bold; } :在元素的内容后面插入一个元素。 p::after { content: ; fontstyle: italic; } :选择元素的第一个字母。 p::firstletter { fontsize: px; fontweight: bold; } :选择元素的第一行。 p::firstline { fontsize: px; fontweight: bold; } :选择元素中被用户选中的部分。 ::selection { backgroundcolor: yellow; color: black; }
Flexbox 是一种用于布局的 CSS3 属性,它可以使元素在容器中按照一定的规则排列: :将容器设置为 Flexbox 布局。 . { display: flex; } :设置主轴的方向,即元素的排列方向。 . { flexdirection: row; } .container { flexdirection: column; } :设置主轴上的对齐方式。 . { justifycontent: flexstart; } .container { justifycontent: center; } .container { justifycontent: flexend; } .container { justifycontent: spacebetween; } .container { justifycontent: spacearound; } :设置交叉轴上的对齐方式。 . { alignitems: stretch; } .container { alignitems: flexstart; } .container { alignitems: center; } .container { alignitems: flexend; } .container { alignitems: baseline; } :设置元素是否换行。 . { flexwrap: nowrap; } .container { flexwrap: wrap; } .container { flexwrap: wrapreverse; } :设置元素的放大比例。 . { flexgrow: ; } :设置元素的缩小比例。 . { flexshrink: ; } :设置元素在主轴上的初始大小。 . { flexbasis: px; }
CSS Grid 是一种用于布局的 CSS3 属性,它可以将元素划分为行和列,从而创建复杂的布局: :将容器设置为 Grid 布局。 . { display: grid; } :设置列的大小和数量。 . { gridtemplatecolumns: px px px; } :设置行的大小和数量。 . { gridtemplaterows: px px px; } :设置区域的名称。 . { gridtemplateareas: ; } :设置元素的列起始和结束位置。 . { gridcolumnstart: ; gridcolumnend: ; } :设置元素的行起始和结束位置。 . { gridrowstart: ; gridrowend: ; } :设置元素的区域名称。 . { gridarea: content; } :设置行和列之间的间距。 . { gridgap: px; }
CSS Transitions 属性用于在元素从一种样式逐渐变为另一种样式时添加动画效果: :设置要过渡的 CSS 属性。 . { transitionproperty: backgroundcolor; } :设置过渡的持续时间。 . { transitionduration: s; } :设置过渡的时间函数。 . { transitiontiming: easeout; } :设置过渡的延迟时间。 . { transitiondelay: s; }
CSS Animation 属性用于创建动画效果,它可以让元素从一种样式逐渐变为另一种样式: :设置动画的名称。 . { animationname: example; } :设置动画的持续时间。 . { animationduration: s; } :设置动画的时间函数。 . { animationtiming: easeout; } :设置动画的延迟时间。 . { animationdelay: s; } :设置动画的播放次数。 . { animationiterationcount: infinite; } :设置动画的播放方向。 . { animationdirection: alternate; } :设置动画结束后元素的样式。 . { animationfillmode: forwards; } :定义动画的关键帧。 keyframes example { { : scale(); } { : scale(); } { : scale(); } }
CSS Media Queries 属性用于根据设备的特性(如屏幕宽度、高度、方向等)来应用不同的样式: :设置屏幕宽度小于某个值时应用的样式。 media screen and (maxwidth: px) { body { fontsize: px; } } :设置屏幕宽度大于某个值时应用的样式。 media screen and (minwidth: px) { body { fontsize: px; } } :设置屏幕方向为横向或纵向时应用的样式。 media screen and (orientation: landscape) { body { backgroundcolor: ; } } :设置屏幕分辨率大于某个值时应用的样式。 media screen and (resolution: dpi) { body { fontsize: px; } }
掌握这些 CSS 属性只是成为一名 CSS 大神的第一步。在实际开发中,你还需要不断学习和探索新的 CSS 特性和技巧,以应对不同的需求和挑战。希望本文能够为你提供一些帮助和启示,让你在 CSS 的世界中越走越远!
如果觉得博客文章对您有帮助,异或土豪有钱任性,可以通过以下扫码向我捐助。也可以动动手指,帮我分享和传播。您的肯定,是我不懈努力的动力!感谢各位亲~