领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

初识CSS——布局小技巧(css布局设计)

nixiaole 2025-03-14 19:38:54 知识剖析 9 ℃

#大有学问#

#头条创作挑战赛#

垂直对齐

作用

用于设置图片或者表单行内块元素文字垂直对齐。

垂直对齐只针对行内元素或者行内块元素有效。

语法

vertical-align:baseline | top | middle | bottom ;

代码练习

练习思路:将图片和文字统一放在一个大盒子div中。

div {
  width: 500px;
  border: 1px solid black;
  margin-bottom: 5px;
}
img {
  height: 150px;
}
  • baseline基线对齐,也是垂直对齐的默认状态值。
 .vAB {
  /* 默认值:基线对齐 */
  vertical-align: baseline;
}
没有设置垂直对齐。
垂直对齐默认值:基线对齐。

代码运行结果

  • top:顶部对齐。
.vAT {
  /* 顶部对齐 */
  vertical-align: top;
}
垂直对齐默认值:顶部对齐。

代码运行结果

  • middle:居中对齐。
.vAM {
  /* 垂直居中对齐 */
  vertical-align: middle;
}
垂直对齐默认值:居中对齐。

代码运行结果

  • bottom:底线对齐。

:这个跟基线对齐不一样。

默认情况下图片的外轮廓是有空白缝隙的。

基线对齐让文本跟图片的空白缝隙对齐。

底线对齐让文本跟图片的下边缘对齐,没有空白缝隙。

.vABo {
  vertical-align: bottom;
}
垂直对齐默认值:居中对齐。

代码运行结果

基线对齐和底线对齐对比效果

基线对齐

溢出文字使用省略号显示

  • 单行文本溢出

用法步骤:

1.强制文本在一行显示

white-space: nowrap;

2.超出部分隐藏

overflow:hidden;

3.文字用省略号替代超出的部分。

text-overflow: ellipsis;

代码练习

设置一个盒子div,里面包含文本。

div {
  width: 200px;
  height: 40px;
  border: 1px solid black;
  margin: 5px;
}

单行文本省略号

.line {
  /* 强制文本一行显示 */
  white-space: nowrap;
}
.oneLine {
  /* 1.强制文本一行显示 */
  white-space: nowrap; 
  /* 2.超出的文本部分隐藏 */
  overflow: hidden;
  /* 3.设置溢出文字的样式为省略号 */
  text-overflow: ellipsis;
}
单行溢出文字没有使用省略号显示,默认状态
单行溢出文字使用省略号显示

代码运行结果

  • 多行文本溢出

注:多行文本溢出有较大兼容性问题,适合于webkit内核浏览器,如谷歌浏览器。

用法步骤:

1.溢出部分隐藏

overflow: hidden;

2.溢出文本用省略号表示

text-overflow: ellipsis;

3.兼容性设置

/* 1.弹性伸缩盒子模型显示 */
display: -webkit-box;
/* 2.限制在一个块元素显示的文本的行数 */
-webkit-line-clamp: 2;
/* 3.设置或检索伸缩和对象的子元素的排列方式 */
-webkit-box-orient: vertical;

代码练习

.moreLine {
  /* 溢出部分隐藏 */
  overflow: hidden;
  /* 溢出文本用省略号表示 */
  text-overflow: ellipsis;
  /* 兼容性设置:*/
  /* 1.弹性伸缩盒子模型显示 */
  display: -webkit-box;
  /* 2.限制在一个块元素显示的文本的行数 */
  -webkit-line-clamp: 2;
  /* 3.设置或检索伸缩和对象的子元素的排列方式 */
   -webkit-box-orient: vertical;
}
多行溢出文字,多行溢出文字,多行溢出文字,多行溢出文字,多行溢出文字, 多行溢出文字,多行溢出文字,多行溢出文字,多行溢出文字。




多行溢出文字省略号显示,多行溢出文字省略号显示,多行溢出文字省略号显示, 多行溢出文字省略号显示,多行溢出文字省略号显示。

代码运行结果

margin负值

当列表中的li标签添加边框和浮动后,中间部分的li边框两两挨在一起会显粗。

列表设置共同样式

ul {
  width: 200px;
  height: 80px;
  margin-bottom: 5px;
}
li {
  width: 50px;
  height: 80px;
  list-style: none;
  border: 1px solid black;
  float: left;
}

正常状态下浮动的列表

  • 默认
  • 默认
  • 默认

代码运行结果

  • 添加负值

移动边框像素值,使边框向左重叠一个边框值。

.mF li {
  margin-left: -1px;
}
  • 负值
  • 负值
  • 负值

代码运行结果

当给li标签添加鼠标悬停效果时,除右侧最后一个盒子之外,其他的盒子都无法显示右侧边框。

ul li:hover {
  border-color: blue;
}

代码运行结果

  • 添加相对定位

因为是第三个盒子向左移动1个边框值,故当鼠标悬停时,第二个盒子的右边框时被压住的,所以显示的仍是第三个盒子的左边框。

改变这个结果就是为li标签添加相对定位,因为相对定位是仍保留元素原来的位置的,所以当鼠标悬停时会整体显示该元素。

.rE li:hover {
  position: relative;
}
  • 相对定位
  • 相对定位
  • 相对定位

代码运行结果

拜拜~

最近发表
标签列表