自学内容网 自学内容网

一七六、CSS 介绍及示例

CSS 介绍及示例

CSS(Cascading Style Sheets)是层叠样式表的缩写,主要用于控制网页元素的样式,如颜色、字体、布局等。以下是常见的 CSS 属性及其示例。


Box 模型相关属性

1. width / height

用于设置元素的宽度和高度。

div {
  width: 200px;
  height: 100px;
  background-color: lightblue;
}
2. margin / padding

margin 用于设置元素外边距,padding 用于设置元素内边距。

div {
  margin: 20px;
  padding: 10px;
  background-color: lightcoral;
}
3. border

设置元素的边框。

div {
  border: 2px solid black;
}
4. box-sizing: content-box / border-box

控制元素的盒子模型,content-box 是默认值,border-box 包括边框和内边距。

/* content-box */
div {
  width: 200px;
  padding: 20px;
  border: 2px solid black;
  box-sizing: content-box;  /* 宽度加上内边距和边框 */
}

/* border-box */
div {
  width: 200px;
  padding: 20px;
  border: 2px solid black;
  box-sizing: border-box; /* 宽度包括内边距和边框 */
}
5. display

控制元素的显示类型,常见值有 block, inline, inline-block, none 等。

div {
  display: inline-block;
  width: 100px;
  height: 50px;
  background-color: lightgreen;
}

Float 属性

1. float: left / right

使元素浮动至容器的左侧或右侧。

div {
  float: left;
  width: 100px;
  height: 100px;
  background-color: lightyellow;
}
2. clear: none / left / right / both / inherit

清除浮动,使元素避免被浮动元素影响。

div {
  clear: both;
}

Position 属性

1. position: static / inherit / relative / absolute / fixed

控制元素的定位方式。

  • static: 默认,不进行定位。
  • relative: 相对定位,相对于元素的正常位置。
  • absolute: 绝对定位,相对于最近的定位祖先元素。
  • fixed: 固定定位,相对于浏览器窗口。
  • inherit: 继承父元素的定位属性。
/* relative */
div {
  position: relative;
  top: 10px;
  left: 20px;
  background-color: lightpink;
}
2. z-index

设置元素的堆叠顺序,值越大越靠前。

div {
  position: absolute;
  z-index: 10;
  background-color: lightblue;
}
3. top / right / bottom / left

指定元素的相对位置。

div {
  position: absolute;
  top: 50px;
  left: 50px;
  background-color: lightblue;
}

选择器(Selector)

基础
  • *
  • ####
  • .
  • ele
层级
  • ,
  • 空格
  • >
  • +
  • ~
属性
  • [attr]
  • [attr=val]
  • [attr*=val]
  • [attr~=val]
  • [attr^=val]
  • [attr$=val]
  • [attr|=val]
伪类
  • :link
  • :active
  • :hover
  • :visited
伪元素
  • :before
  • :after
  • :first-letter
  • :first-line
索引
  • :first-child
  • :last-child
  • :only-child
  • :nth-child(n)
  • :nth-last-child(n)
  • :first-of-type
  • :last-of-type
  • :only-of-type
  • :nth-of-type(n)
  • :nth-last-of-type(n)
表单
  • :focus
  • :enabled
  • :disabled
  • :checked
其他
  • :not()
  • :empty
  • :target
  • :selection
webkit
  • :-webkit-scrollbar
  • :-webkit-full-screen
  • :-webkit-touch-callout
  • -webkit-text-size-adjust
  • -webkit-input-placeholder
  • -webkit-overflow-scrolling
  • -webkit-tap-highlight-color
  • -webkit-filter
Never Use
  • :root
  • :lang()

排版(Typesetting)

1. color

设置文本颜色。

p {
  color: blue;
}
2. background

设置元素的背景颜色或图像。

div {
  background-color: lightgreen;
}
3. font

设置字体类型、大小、加粗等。

p {
  font-family: Arial, sans-serif;
  font-size: 16px;
  font-weight: bold;
}
4. line-height

设置行高,影响行间距。

p {
  line-height: 1.5;
}
5. text-decoration

设置文本装饰,如下划线、删除线等。

a {
  text-decoration: underline;
}
6. text-indent

设置文本缩进。

p {
  text-indent: 30px;
}
7. text-shadow

为文本添加阴影。

h1 {
  text-shadow: 2px 2px 5px gray;
}
8. opacity

设置元素的透明度。

div {
  opacity: 0.5;
}
9. visibility

控制元素的可见性,visiblehidden

div {
  visibility: hidden;
}
10. list-style

设置列表样式,如项目符号、数字列表等。

ul {
  list-style-type: square;
}
11. outline

设置元素的外边框,通常用于获得焦点时的效果。

button {
  outline: 2px solid blue;
}
12. box-shadow

为元素添加阴影。

div {
  box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
}
13. border-radius

设置元素的圆角。

div {
  border-radius: 10px;
}
14. overflow

控制元素内容溢出时的行为。

div {
  overflow: auto;
}
15. overflow-x / overflow-y

分别控制水平方向和垂直方向的溢出行为。

div {
  overflow-x: scroll;
  overflow-y: hidden;
}
16. min-width / min-height

设置元素的最小宽度和最小高度。

div {
  min-width: 100px;
  min-height: 50px;
}
17. max-width / max-height

设置元素的最大宽度和最大高度。

div {
  max-width: 500px;
  max-height: 300px;
}
18. content

用于在伪元素中插入内容。

p::before {
  content: "Note: ";
  font-weight: bold;
}
19. vertical-align

设置元素在垂直方向上的对齐方式。

img {
  vertical-align: middle;
}
20. text-align

设置文本对齐方式。

h1 {
  text-align: center;
}
21. border-collapse: collapse

合并表格边框。

table {
  border-collapse: collapse;
}
22. border-spacing: none

设置表格单元格之间的间距。

table {
  border-spacing: 0;
}
23. white-space

控制空白符的显示方式。

pre {
  white-space: pre-wrap;
}
24. word-spacing

设置单词间距。

p {
  word-spacing: 5px;
}
25. word-break

设置单词断行规则。

p {
  word-break: break-all;
}
26. word-wrap

设置单词换行规则。

p {
  word-wrap: break-word;
}

媒体查询(Media Query)

1. @media

根据设备的屏幕大小、分辨率等应用不同的样式。

@media (max-width: 600px) {
  body {
    background-color: lightgray;
  }
}

动画(Animation)

1. animation

设置 CSS 动画。

@keyframes example {
  0% { background-color: red; }
  100% { background-color: yellow; }
}

div {
  animation: example 3s infinite;
}

过渡(Transition)

1. transition

设置元素的状态变化过渡效果。

div {
  transition: background-color 1s ease;
}

div:hover {
  background-color: lightblue;
}

2D / 3D 变换(Transform)

1. transform

设置元素的平移、旋转、缩放等变换。

div {
  transform: rotate(45deg);
}

其他(Other)

1. -webkit-user-select: none

禁止用户选择文本。

div {
  -

webkit-user-select: none;
}
2. -webkit-input-placeholder: color

设置输入框占位符的颜色。

input::placeholder {
  color: gray;
}
3. -webkit-text-size-adjust: none

禁用文本缩放。

body {
  -webkit-text-size-adjust: none;
}
4. -webkit-touch-callout: none

禁用长按时显示的菜单。

div {
  -webkit-touch-callout: none;
}
5. -webkit-overflow-scrolling: touch

启用 iOS 中的滚动效果。

div {
  -webkit-overflow-scrolling: touch;
}
6. -webkit-tap-highlight-color: transparent

禁用点击时的高亮效果。

div {
  -webkit-tap-highlight-color: transparent;
}
7. ::-webkit-scrollbar

自定义滚动条样式。

::-webkit-scrollbar {
  width: 10px;
}
8. ::-webkit-full-screen

设置全屏样式。

::-webkit-full-screen {
  background-color: black;
}

CSS Flexbox(弹性盒布局)简介

Flexbox 是一种 CSS 布局模式,专为单行或多行布局的分布和对齐设计,特别适合创建自适应的响应式布局。它使元素可以灵活地调整在容器中的位置和比例。


基本概念

  • 容器(Container):使用 display: flex; 定义的元素,将子元素设为弹性布局。
  • 项目(Items):容器内的每一个直接子元素,被称为“弹性项目”。

Flex 容器属性

1. display
  • display: flex;:将元素定义为弹性容器,子元素按弹性布局排列。
  • display: inline-flex;:容器为弹性布局,同时保持行内元素性质。
.container {
  display: flex;
}
2. flex-direction

设置项目在主轴上的排列方向。

  • row(默认):项目从左到右排列。
  • row-reverse:项目从右到左排列。
  • column:项目从上到下排列。
  • column-reverse:项目从下到上排列。
.container {
  flex-direction: row;
}
3. justify-content

控制项目在主轴上的对齐方式。

  • flex-start(默认):项目靠左对齐。
  • flex-end:项目靠右对齐。
  • center:项目居中对齐。
  • space-between:项目平均分布,两端对齐。
  • space-around:项目平均分布,项目两侧有间隔。
.container {
  justify-content: center;
}
4. align-items

控制项目在交叉轴上的对齐方式。

  • stretch(默认):项目占满交叉轴的高度。
  • flex-start:项目在交叉轴的起点对齐。
  • flex-end:项目在交叉轴的终点对齐。
  • center:项目在交叉轴上居中对齐。
  • baseline:项目在文本基线对齐。
.container {
  align-items: center;
}
5. align-content

控制多行项目的对齐方式,仅在项目换行时有效。

  • flex-start:行靠交叉轴的起点对齐。
  • flex-end:行靠交叉轴的终点对齐。
  • center:行在交叉轴上居中。
  • space-between:行均匀分布,两端对齐。
  • space-around:行均匀分布,行之间留有间隔。
  • stretch(默认):行将拉伸以占满交叉轴。
.container {
  align-content: space-between;
}
6. flex-wrap

指定项目是否换行。

  • nowrap(默认):不换行。
  • wrap:自动换行。
  • wrap-reverse:反向换行。
.container {
  flex-wrap: wrap;
}

Flex 项目属性

1. flex-grow

定义项目的放大比例,默认为 0,即不放大。

.item {
  flex-grow: 1; /* 项目将分配剩余空间 */
}
2. flex-shrink

定义项目的缩小比例,默认为 1,即项目将缩小以适应容器。

.item {
  flex-shrink: 0; /* 项目不缩小 */
}
3. flex-basis

定义项目在主轴上的初始大小。

.item {
  flex-basis: 100px;
}
4. flex

简写属性,包含 flex-growflex-shrinkflex-basis

.item {
  flex: 1 0 100px; /* 等同于 flex-grow: 1; flex-shrink: 0; flex-basis: 100px; */
}
5. align-self

允许单个项目在交叉轴上有不同的对齐方式,覆盖 align-items 的设置。

  • auto(默认):继承容器的 align-items 属性。
  • flex-startflex-endcenterbaselinestretch:与 align-items 的值相同。
.item {
  align-self: flex-end;
}

示例代码

下面是一个完整的示例,展示了如何使用 flex 布局创建一个水平导航栏。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <style>
    .container {
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      align-items: center;
      background-color: #333;
      padding: 10px;
    }
    .item {
      color: white;
      padding: 10px;
      flex: 1;
      text-align: center;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="item">Home</div>
    <div class="item">About</div>
    <div class="item">Services</div>
    <div class="item">Contact</div>
  </div>
</body>
</html>

在这个例子中,四个 .item 元素按等宽分布在容器中,并居中对齐。


新特性(New)

1. will-change

提示浏览器元素将要发生变化,优化性能。

div {
  will-change: transform;
}


原文地址:https://blog.csdn.net/zm06201118/article/details/143588113

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!