Html css样式总结

embedded/2024/11/13 15:46:34/

css_0">1.Html css样式总结

1.1. 定位position

  布局是html中非常重要的一部分,而定位在页面布局中也是使用频率很高的方法,本章节为定位在布局中的使用技巧和注意事项。
  position定位有4个属性,分别是static(默认),absolute(绝对定位),relative(相对定位),fixed(固定定位–相对于浏览器窗口)。

1.1.1. position:relative

  生成的位置相对于自身定位的,需要注意的是使用position:relative的元素并没有脱离文档流,且原来的位置占用的空间依旧存在,只是位置发生了变化。一般使用relative来改变位置比较少,主要是用来设置子级的absolute定位的参考对象。relative分为三种情况进行说明
(1)包含关系:父级absolute,子级relative;
(2)包含关系:父级relative,子级absolute;
(3)并列关系:兄弟标签都是relative;

1.1.1.1. 最具常见的用法就是父级标签relative,子级标签position来做到无论浏览器如何改变,都是相对浏览器的定位。

css

#a{height:200px;width:200px;position: relative;background-color:red;left:50px;top:50px;
}
#b{height:50px;width:50px;position: absolute;background-color:green;left:20px;top:20px;
}

html:

<div id = "a">a<div id = "b">b</div>
</div>

在这里插入图片描述

1.1.1.2. 正常情况下同1的效果,不过需要注意的是,当标签中包含文字时,relative会发生调整。

在这里插入图片描述
在这里插入图片描述

1.1.1.3. 当不存在父级元素包裹时,relative的相对位置是根据最近的一个兄弟作为参考的。

css

#a{height:200px;width:200px;position: relative;background-color:red;
}
#b{height:200px;width:200px;position:relative;background-color:green;left:50px;top:50px;
}

html:

<div id = "a">
</div>
<div id = "b">
</div>

在这里插入图片描述

  但当a标签也设置了left、top等相关属性时,兄弟标签b继续以a变化前作为参考相对位置。
css

#a{height:200px;width:200px;position: relative;background-color:red;left:50px;top:50px;
}
#b{height:200px;width:200px;position:relative;background-color:green;left:20px;top:20px;
}

html:

<div id = "a">
</div>
<div id = "b">
</div>

在这里插入图片描述

1.1.2. position:absolute

  absolute定位是布局中最常用到的定位,其生成的位置是相对于带有position属性的父(父…)级来定位;如果父级都没有position属性,则相对于document来定位;使用absolute定位后,定位元素是脱离文档流的,这时候父级会检测不到定位元素的宽高。inline元素使用absolute定位之后,可以对其设置宽高;元素是不可以同时使用绝对定位和浮动的

    <div class="relative-layout"><span class="relative-item">relative布局</span></div>
/*relative布局*/
.relative-layout {background-color: grey;position: relative;padding: 20px;
}.relative-item {position: absolute;right: 0.02rem;top: 0.11rem;background: red;color: #2ac845;
}

在这里插入图片描述

  可以看到在对子级span标签absolute定位之后,可以设置宽高,且父级无法检测到子级宽高,所以无法有子级来撑开;

1.1.3. position:fixed

  fixed定位是相对于浏览器窗口来定位的,所以也是脱离了文档流,与absolute一样,父级会检测不到定位元素的宽高。inline元素使用absolute定位之后,可以对其设置宽高;元素是不可以同时使用fixed定位和浮动的。
  z-index属性:
  使用定位后的元素都会有z-index属性,同级定位元素这个值越大,其显示越靠前。这项属性需要注意的是比较时是同级定位元素进行比较。

      <div class="fixed-layout"><div class="fixed-inner"></div></div><div class="fixed-layout2"><div class="fixed-inner2"></div></div>
/*fixed布局*/
.fixed-layout {height: 150px;width: 150px;background-color: grey;position: absolute;z-index: 1;
}.fixed-inner {height: 50%;width: 50%;background: red;position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);z-index: 10;
}
.fixed-layout2{position: absolute;z-index: 2;height: 100px;width: 100px;background: green;
}
.fixed-inner2{position: absolute;left: 50%;top: 50%;z-index: 8;height: 50%;width: 50%;background: yellow;
}

在这里插入图片描述

  当两个拥有子元素的父级元素(绿色和灰色DIV)重叠时,层级高的父元素(绿色DIV)里的子元素(黄色DIV)永远在上层,即使层级底的父元素(灰色DIV)里的子元素(红色DIV)z-index的值较大。

1.2. 块级元素和行内元素

(1)块级元素:block
  每个块级元素默认占一行高度,一行内添加的块级元素一般无法添加其他元素,两个连续的块级元素会自动换行显示。块级元素一般可以嵌套块级元素和行内元素。
  常见的块级元素:div,h1-h6,dl,ul,li,ol,table,p,form。display:block;的元素都是块级元素。
(2)行内元素:inline
  也叫内联元素,行内元素一般是基于语义级的基本元素,只能容纳文本或其他行内元素。
  常见的行内元素:a,img,span,i,br,b,strong,label,input,select。元素样式是display:inline;的都是内联元素。
(3)行内元素和块级元素的区别
区别一:
  块级元素会独占一行,默认情况下自动填满父元素的宽度
   行内元素不会独占一行,相邻的行内元素会排在同一行,其宽度随内容的变化而变化
区别二:
   块级元素可以设置宽高
   行内元素不可以设置宽高,但是可以设置line-height来改变高度
区别三:
   块级元素可以设置margin,padding
   行内元素设置margin,padding,只有左右有效(margin-left,margin-right,padding-left, padding-right),上下无效(margin-top,margin-bottom,padding-top,padding-bottom)
区别四:
  块级元素:display:block
  行内元素:display:inline
  可以通过设置display切换

1.3. 文本属性

(1)color
  描述:设置文本的颜色
  允许值:<颜色名> | <十六进制值> | | | |
(2)direction
  描述:设置元素的文本方向
  允许值:ltr | rtl | initial | inherit
  注意:ltr:默认,文本方向从左到右。rtl:文本方向从右到左。initial:将此属性设置为其默认值。inherit:从其父元素继承此属性。
(3)text-align
  描述:设置文本的水平对齐方式
  允许值:left | center | right | justify
(4)vertical-align
  描述:设置元素的垂直对齐方式
  允许值:baseline | sub | super | bottom | text-bottom | middle | top | text-top | <百分比>
  注意:百分比是指相对于元素的行高。
(5)text-indent
  描述:设置文本第一行的缩进
  允许值:<长度> | <百分比>
  注意:百分比是指相对于父元素的宽度。当值为负值时可使用padding-left、margin-left来配合合负缩进。
(6)letter-spacing
  描述:设置字符间距
  允许值:normal | <长度>
(7)word-spacing
  描述:设置单词间距
  允许值:normal | <长度>
(8)line-height
  描述:设置行高
  允许值:normal | <长度> | <百分比> | <数字>
  注意:百分比是指相对元素的字体尺寸。
(9)text-transform
  描述:用于将文本修改为大写、小写或首字母大写
  允许值:none | uppercase | lowercase | capitalize | initial | inherit
  注意:uppercase:所有字符都转换为大写。lowercase:所有字符都转换为小写。capitalize:每个单词的第一个字符转换为大写。initial:将此属性设置为其默认值。inherit:从其父元素继承此属性
(10)text-decoration
  描述:用于文本装饰,下划线、上划线、删除线等
  允许值:[none | underline | overline | line-through | blink] [solid | double | dotted | dashed | wavy] <颜色>
  注意:underline:下划线。overline:上划线。line-through:中划线。solid:单实线。double:双实线。dotted:点状线。dashed:虚线。wavy:波浪线。

text-decoration: none;                     /*没有文本装饰*/
text-decoration: underline red;            /*红色下划线*/
text-decoration: underline wavy red;       /*红色波浪形下划线*/

(11)white-space
  描述:设置元素内部空白的处理方式
  允许值:normal | pre | nowrap | pre-wrap | pre-line | inherit
  注意:normal:默认,空白会被浏览器忽略。 pre:空白会被浏览器保留,其行为方式类似 HTML中的

标签。  nowrap:文本不会换行,文本会在在同一行上继续,直到遇到标签为止。  pre-wrap:保留空白符序列,但是正常地进行换行。  pre-line:合并空白符序列,但是保留换行符。  inherit:规定应该从父元素继承 white-space 属性的值。
(12)text-shadow
描述:为文本添加阴影
允许值:none | h-shadow v-shadow blur color | initial | inherit
注意:none:默认,不绘制阴影。 h-shadow:必需,水平阴影的位置,允许负值。 v-shadow:必需,垂直阴影的位置,允许负值。 blur:可选,模糊距离。 color:可选,阴影的颜色。
(13)text-overflow
描述:用于如何向用户呈现未显示的溢出内容。
允许值:clip | ellipsis | string
注意:clip:修剪文本。ellipsis:显示省略符号来代表被修剪的文本。string:使用给定的字符串来代表被修剪的文本。
(14)word-break
描述:规定自动换行的处理方法
允许值:normal | break-all | keep-all
注意:normal:使用浏览器默认的换行规则。break-all:允许在单词内换行。keep-all:只能在半角空格或连字符处换行。
(15)word-wrap
描述:允许长单词或 URL 地址换行到下一行
允许值:normal | break-word
注意:normal:只在允许的断字点换行(浏览器保持默认处理)。break-word:在长单词或 URL 地址内部进行换行。
(16)text-align-last
描述:设置最后一行文本的对齐方式
允许值:start | end | right | center | justify
(17)text-emphasis
描述:设置重点文本样式
允许值:none | accent | dot | circle | disc | before | after
(18)line-break
描述:设置如何断开带有标点符号的中文、日文或韩文文本的行。
允许值:auto | loose |normal | strict | anywhere
注意:anywhere:来使长标点符号进行换行。auto:使用默认的断行规则。loose:使用最不严格的断行规则. 一般用于报纸等短行。normal:使用一般严格的断行规则。strict:使用最严格的断行规则。

1.4. 字体属性

(1)font-family
  描述:设置文本的字体系列
  允许值:<系列名> | <一般系列>
(2)font-size
  描述:设置字体大小
  允许值:xx-small | x-small | small | medium | large | x-large | xx-large | smaller | larger | <长度> | <百分比>
  注意:medium:默认值。百分比是指相对于父元素的字体尺寸的百分比。
(3)font-weight
  描述:设置字体粗细
  允许值:normal | bolder | lighter | number
  注意:normal:默认值,定义标准的字符。bold:定义粗体字符。bolder:定义更粗的字符。lighter:定义更细的字符。number:100、200、300、400、500、600、700、800、900,400等同于normal,而700等同于bold。
(4)font-style
  描述:设置字体粗细
  允许值:normal | italic | oblique | inherit
  注意:normal:默认值,标准的字体样式。italic:斜体的字体样式。oblique:倾斜的字体样式。inherit:从父元素继承字体样式。
(5)font-variant
  描述:是否以小型大写字母的字体显示文本
  允许值:normal | small-caps
  注意:normal:默认值,标准的字体样式。small-caps:小型大写字母的字体。

1.5. 颜色与背景

(1)background-color
  描述:设置背景色
  允许值:transparent | <颜色>
(2)background-image
  描述:设置背景图像
  允许值:none |
(3)background-repeat
  描述:设置背景重复,平铺方式
  允许值:no-repeat | repeat | repeat-x | repeat-y
(4)background-attacbment
  描述:设置背景附着,滚动和固定
  允许值:scrooll | fixed
(5)background-position
  描述:设置背景位置
  允许值:[<百分比> | <长度>] | [top | center | bottom] | [left | center | right]
(6)background
  描述:简写背景属性
  允许值:<背景颜色> <背景图像> <背景重复> <背景附着> <背景位置>
(7)background-clip
  描述:设置背景绘制的区域
  允许值:border-box | padding-box | content-box
注意:border-box:背景被裁剪到边框盒。padding-box:背景被裁剪到内边距框。content-box:背景被裁剪到内容框。
(8)background-size
  描述:背景图像的大小
  允许值:length | percentage | cover | contain
  注意:length:设置背景图片高度和宽度;第一个值设置宽度,第二个值设置的高度;如果只给出一个值,第二个是设置为 auto(自动)。percentage:将计算相对于背景定位区域的百分比;第一个值设置宽度,第二个值设置的高度,各个值之间以空格隔开指定高和宽,以逗号,隔开指定多重背景;如果只给出一个值,第二个是设置为"auto(自动)"。cover:保持图像的纵横比并将图像缩放成将完全覆盖背景定位区域的最小大小。contain:保持图像的纵横比并将图像缩放成将适合背景定位区域的最大大小。
(9)background-origin
  描述:规定 background-position 属性相对于什么位置来定位。
  允许值:padding-box | border-box | content-box
  注意:如果背景图像的 background-attachment 属性为 “fixed”,则该属性没有效果。

1.6. 框与边框

(1)width
  描述:设置宽度
  允许值:auto | <长度> | <百分比>
(2)height
  描述:设置高度
  允许值:auto | <长度> | <百分比>
(3)margin
  描述:设置外边距
  允许值:<长度> | <百分比> | auto
(4)padding
  描述:设置内边距
  允许值:<长度> | <百分比>
(5)border-width
  描述:设置边框宽度
  允许值:medium | thin | thick | <长度>
  注意:thin:定义细的边框。medium:默认,定义中等的边框。thick:定义粗的边框。
(6)border-style
  描述:设置边框样式
  允许值:none | solid | dashed | dotted | double | groove | ridge | inset | outset
  注意:solid:单实线。dashed:虚线。dotted:点状线。double:双实线。groove: 定义3D沟槽边框。ridge: 3D脊边框。inset:3D嵌入边框。outset: 3D突出边框。
(7)border-color
  描述:设置边框颜色
  允许值:<颜色>
(8)border
  描述:设置边框, 简写属性
  允许值:<边框宽度> <边框样式> <边框颜色>
(9)border-radius
  描述:设置边框圆角
  允许值:<长度> | <百分比>
(10)outline-width
  描述:设置轮廓宽度
  允许值:medium | thin | thick | <长度>
  注意:thin:定义细的轮廓。medium:默认,定义中等的轮廓。thick:定义粗的轮廓。
(11)outline-style
  描述:设置轮廓样式
  允许值:none | solid | dashed | dotted | double | groove | ridge | inset | outset
  注意:solid:单实线。dashed:虚线。dotted:点状线。double:双实线。groove: 定义3D沟槽轮廓。ridge: 3D脊轮廓。inset:3D嵌入轮廓。outset: 3D突出轮廓。
(12)outline-color
  描述:设置轮廓颜色
  允许值:<颜色>
(13)outline
  描述:设置轮廓, 简写属性
  允许值:<轮廓宽度> <轮廓样式> <轮廓颜色>
(14)outline-offset
  描述:指定轮廓与元素的边缘或边框之间的空间。
  允许值:<长度>
(15)box-shadow
  描述:属性应用阴影于元素。
  允许值:h-shadow v-shadow blur spread color inset
  注意:h-shadow:必需的,水平阴影的位置,允许负值。v-shadow:必需的,垂直阴影的位置,允许负值。blur:可选,模糊距离。 spread:可选,阴影的大小。color:可选,阴影的颜色。inset:可选,从外层的阴影(开始时)改变阴影内侧阴影。
(16)box-sizing
  描述:属性允许您以特定的方式定义匹配某个区域的特定元素,默认值是content-box,设置或检索对象的盒模型组成模式,对应的脚本特性为boxSizing。
  允许值:content-box | border-box | inherit
(17)float
  描述:浮动
  允许值:none | left | right
(18)clear
  描述:清除
  允许值:none | left | right | both

1.7. Flex布局

(1)flex-direction
  描述:设置主轴的方向(即元素的排列方向)。
  允许值:row | row-reverse | column | column-reverse
  注意:row:主轴为水平方向,起点在左端(默认值)。row-reverse:主轴为水平方向,起点在右端。column:主轴为垂直方向,起点在上沿。column-reverse:
(2)flex-wrap
  描述:设置是否换行。
  允许值:nowrap | wrap | wrap-reverse
  注意:nowrap:不换行(默认值)。wrap:换行,第一行在上方。wrap-reverse:换行,第一行在下方。
(3)flex-flow
  描述:flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowarap。
(4)justify-content
  描述:设置主轴上的对齐方式。
  允许值:flex-start | flex-end | center | space-between | space-around
  注意:flex-start:左对齐(默认值)。flex-end:右对齐。center:居中。space-between:两端对齐,项目之间的间隔都相等。space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
(5)align-items
  描述:设置交叉轴上的对齐方式。
  允许值:stretch | flex-start | flex-end | center | baseline
  注意:flex-start:交叉轴的起点对齐。flex-end:交叉轴的终点对齐。center:交叉轴的中点对齐。baseline:项目的第一行文字的基线对齐。stretch:如果项目未设置高度或设置auto,将占满整个容器的高度(默认值)。
(6)align-content
  描述:设置d多根轴线的对齐方式。如果只有一根轴线,该属性不起作用。
  允许值:stretch | flex-start | flex-end | center | baseline
  注意:flex-start:交叉轴的起点对齐。flex-end:交叉轴的终点对齐。center:交叉轴的中点对齐。baseline:项目的第一行文字的基线对齐。stretch:如果项目未设置高度或设置auto,将占满整个容器的高度。
(7)flex-grow
  描述:设置放大比例。默认为0,即如果存在剩余空间,也不放大。
(8)flex-shrink
  描述:设置缩小比例。默认为1,即如果空间不足将缩小。
(9)flex-basis
  描述:flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。
(10)flex
  描述:flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。
(11)order
  描述:设置排列顺序。数值越小排列越靠前,默认为0。
(12)align-self
  描述:设置单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
  允许值:auto | flex-start | flex-end | center | baseline | stretch
  注意:flex-start:交叉轴的起点对齐。flex-end:交叉轴的终点对齐。center:交叉轴的中点对齐。baseline:项目的第一行文字的基线对齐。stretch:如果项目未设置高度或设置auto,将占满整个容器的高度。

1.8. 伪类选择器

(1)link: 超链接未被访问。
(2)visited: 超链接已被访问。
(3)active: 元素被激活。
(4)hover: 鼠标悬浮。
(5)focus: 元素获取了焦点。
(6)before: 元素前面插入内容。
(7)after: 元素后面插入内容。
(8)first-line: 元素内的第一行文本。
(9)first-letter: 元素内的第一个字符。
(10)first-child: 父元素的第一个子元素。
(11)last-child: 父元素的最后一个子元素。
(12)nth-child(n): 父元素的第n个子元素。
(13)nth-last-child(n): 父元素的倒数第n个元素。
(14)nth-of-type(n): 父元素的第n个元素,且所有匹配的子元素被分离出来单独排序。
(15)nth-last-of-type(n): 父元素的倒数第n个元素,且所有匹配的子元素被分离出来单独排序。
(16)first-of-type: 父元素的第一个同类型的子元素。
(17)last-of-type: 父元素的最后一个同类型的子元素。
(18)only-child: 父元素只包含一个匹配的子元素。


http://www.ppmy.cn/embedded/113077.html

相关文章

已读论文创新点合集

系列文章目录 文章目录 系列文章目录一、《LAMM: Label Alignment for Multi-Modal Prompt Learning》二、《MaPLe: Multi-modal Prompt Learning》三、《Learning to Prompt for Vision-Language Models》CoOp 一、《LAMM: Label Alignment for Multi-Modal Prompt Learning》…

【30天玩转python】高级数据结构

高级数据结构 在 Python 中&#xff0c;除了基础的列表、元组、字典和集合等数据结构之外&#xff0c;还有一些更复杂和高级的数据结构。这些数据结构在解决特定问题时能够提供更好的性能和更强的功能。本节将介绍一些常用的高级数据结构&#xff0c;包括堆、队列、双端队列、…

C++笔记---多态

1. 多态的概念 多态(polymorphism)的概念&#xff1a;通俗来说&#xff0c;就是多种形态。 多态分为编译时多态(静态多态)和运行时多态(动态多态)&#xff0c;这里我们重点讲运行时多态&#xff0c;编译时多态(静态多态)和运行时多态(动态多态)。 编译时多态(静态多态)主要就…

CPU 和 GPU:为什么GPU更适合深度学习?

目录 什么是 CPU &#xff1f; 什么是 GPU &#xff1f; GPU vs CPU 差异性对比分析 GPU 是如何工作的 &#xff1f; GPU 与 CPU 是如何协同工作的 &#xff1f; GPU vs CPU 类型解析 GPU 应用于深度学习 什么是 CPU &#xff1f; CPU&#xff08;中央处理器&#xff09;…

用于稀疏自适应深度细化的掩码空间传播网络 CVPR2024

目录 Masked Spatial Propagation Network for Sparsity-Adaptive Depth Refinement &#xff08;CVPR 2024&#xff09;用于稀疏自适应深度细化的掩码空间传播网络1 介绍2 算法流程2.1 问题建模2.2 Guidance Network2.3 MSPN 模块 3 实验结果3.1 稀疏度自适应深度细化对比试验…

分享JavaScript中直接调用CSS中的类名

分享JavaScript中直接调用CSS中的类名 在现代的 JavaScript 框架&#xff08;如 React、Vue&#xff09;中&#xff0c;使用 CSS 模块&#xff08;CSS Modules&#xff09;是一种非常流行的方式。.module.css 文件扩展名代表的是 CSS 模块&#xff0c;它与普通的 CSS 文件不同…

Java 之 IO流

一、IO流概述 在计算机编程中&#xff0c;IO流&#xff08;Input/Output Stream&#xff09;是处理设备间数据传输的关键技术。简单来说&#xff0c;IO流就是以流的方式进行输入输出&#xff0c;数据被当作无结构的字节序或字符序列来处理。在Java等编程语言中&#xff0c;IO流…

vscode从本地安装插件

1. 打开VSCode。 2. 点击左侧菜单中的“扩展”&#xff08;或按CtrlShiftX&#xff09;。 3. 点击“更多操作”&#xff08;三个点&#xff09;> “从VSIX安装”。 4. 选择下载的.vsix文件。 5. 点击“安装”即可安装插件。