CSS--宽度与高度

单行div的高度

  1. 字与字之间是通过基线对齐的.
  2. 每个字体有不同的建议行高.
  3. line-height可以规定固定的行高
  4. 行高决定div的高度

多个 连续 空格/回车/tab等会被识别为一个空格,"& nbsp"类似于空格,不同字体的空格大小不同,所以不要使用"& nbsp"来做样式.

如何实现单行文字两端对齐:

  <div>
    <span>姓名</span><br>
    <span>联系方式</span>
  </div>

复制代码
span{
    display: inline-block;
    width: 4em;
    text-align: justify;
    overflow: hidden;
}
span::after{
    content: '';
    display: inline-block;
    width: 100%;
}
复制代码

单行文字两端效果预览

单行/多行文字溢出(省略号):

单行

selector{
  overflow: hidden;
  text-overflow: ellipsis;
}
复制代码

多行:

selector{
  word-break: break-all;
  display: -webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow: hidden;
}
复制代码

文字居中

  text-align: center;
  line-height: 20px;
  padding: 10px;   //固有高度内垂直居中
复制代码

margin合并

块级元素的上外边距和下外边距有时会合并为一个外边距,其大小取其中的最大者,这种现象称为margin合并.通过设置border/padding/overflow:hidden来去除合并.


div的高度是由内部文档流中元素的高度的总和决定的.

文档流是内联元素从左到右依次排列,宽度不够从下一行继续从左到右排列(内联元素的padding\margin和border只会影响其宽度).块级元素从上到下,依次排列,每一个都另起一行.

既然说到了文档流,就说一下脱离文档流.脱离文档流的元素不会再占用原来的空间,即原来的高度变小减去脱离文档流元素的高度,就像"浮在"文档流的上面.脱离文档流的方法有 float:left / position:absolute / position:fixed等,要注意position:relative并不会脱离文档流.

div居中

<div class='parent'>
    <div class='son'>
    </div>
</div>
复制代码
body{
  margin: 0;
}
.parent{
  height: 100vh;
  border:2px solid cyan;
  box-sizing: border-box;
}
.son{
  background: red;
  width:100px;
  height:100px;
  position: absolute;
  top:0;
  bottom:0;
  left:0;
  right:0;
  margin: auto;
}
复制代码

如此能实现定宽定高的div元素的垂直与水平方向的居中.不指定宽高的xy方向居中方式为:

body{
  margin: 0;
}
.parent{
  height: 100vh;
  border:2px solid cyan;
  box-sizing: border-box;
  display:flex;
  justify-content: center;
  align-items: center;
}
.son{
  background: red;
  width:100px;
  height:100px;
}
复制代码
### 使用 `postcss-pxtorem` 实现宽度高度的自适应布局 为了使网页能够根据不同屏幕尺寸进行响应式调整,可以利用 `postcss-pxtorem` 将固定的 px 单位转换为相对单位 rem。这有助于创建更加灵活且易于维护的设计方案。 #### 安装依赖包 首先,在项目根目录下执行命令安装必要的 PostCSS 插件: ```bash npm install postcss postcss-pxtorem --save-dev ``` 接着配置 PostCSS 来启用这些插件。对于 Nuxt 或 Vue CLI 创建的应用程序来说,通常可以在项目的 `package.json` 文件内指定 PostCSS 配置选项;而对于 Vite 构建工具,则可能需要单独设置一个名为 `.postcssrc.js` 的文件来完成相同的工作[^2]。 #### 设置 PostCSS 配置 下面是一个典型的 PostCSS 配置实例,展示了如何集成 `postcss-pxtorem` 并对其进行参数化定制以便于处理宽度高度属性中的像素值: ```javascript// .postcssrc.js or equivalent configuration file module.exports = { plugins: [ require('autoprefixer'), require('postcss-import'), require('postcss-preset-env')({ stage: 1, features: {'custom-properties': false} }), require('postcss-pxtorem')({ rootValue: 16, // 设定设计稿的基础字体大小,默认是16px propList: ['*'], // 对所有样式属性生效,也可以只针对特定属性如['font', 'line-height'] selectorBlackList: [], // 排除某些选择器不被转化成rem minPixelValue: 2, // 不小于该数值才转化为rem mediaQuery: true // 是否允许媒体查询里的px也转换为rem }) ] }; ``` 上述代码片段中设置了几个重要参数用于控制哪些 CSS 属性会被转换以及怎样计算最终的结果。特别是当涉及到宽高比例时,确保正确设定 `rootValue` 参数非常重要,因为它决定了整个文档流中文本节点的实际显示尺度[^3]。 #### 编写 HTML 和 CSS 一旦完成了以上准备工作之后就可以按照常规方式编写 HTML 结构并应用相应的类名或 ID 给目标容器。这里给出一段简单的例子说明如何定义具有动态变化特性的盒子模型: ```html<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"/> <title>Responsive Box Example</title> <link rel="stylesheet" href="./styles.css"/> </head> <body> <div class="responsive-box"></div> </body> </html> ``` 对应的 CSS 样式表如下所示: ```css/* styles.css */ .responsive-box { width: 50%; /* 这里原本可能是固定像素值比如'375px'*/ height: calc(100vh / 2); /* 利用视窗单位配合calc函数实现半屏高的效果 */ background-color: lightblue; } @media (max-width: 600px){ .responsive-box{ width:90%; } } ``` 在这个案例里面,`.responsive-box` 类下的元素会根据当前窗口的比例自动调整自身的宽度至父级容器的一半,并保持其高度始终占据半个可视区域的高度。同时通过媒体查询语句进一步增强了组件在小型屏幕上表现得更好——即让它的宽度扩大到几乎填满整个可用空间[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值