前军教程网

中小站长与DIV+CSS网页布局开发技术人员的首选CSS学习平台

还在手写复杂 DOM 大小调整代码?这两行 CSS 轻松搞定!

家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。

今天给大家带来一个有趣的小技巧,即让任何 DOM 元素能随意变换大小。

如何让元素随意调整大小

开发者如果要让任意 DOM 元素可调整大小,可以添加以下 CSS 代码:

div {
  resize: auto;
  overflow: auto;
}

resize 属性允许指定元素是否可由用户调整大小,而 overflow 属性则确保元素内的内容在超出元素大小时可以滚动。

当然,开发者还可以使用 horizontal、vertical 等值来限制在特定方向上调整大小,例如:如果希望仅允许水平调整大小,则可以使用:

div {
  resize: horizontal;
  // resize: both; 两个方向都能调整
  // resize: none; 两个方向都不允许调整
  overflow: auto;
}

这个小技巧在各种场景下都很有用,尤其是在构建用户界面时,需要用户能够动态调整某些元素的大小。

同时,如果想在开发过程中验证某些元素的大小调整行为,而又不想过多地修改宽度和高度属性时,这个技巧也很有用。

当然值得一提的是,resize 不适用于以下元素:

  • 内联元素
  • 溢出属性设置为 visible 或 clip 的块元素

对任意元素使用 resize 属性

开发者可以使用 resize 属性使任何元素可调整大小。在以下示例中,可调整大小的 <div> 包含一个可调整大小的段落<p> 元素。

<div class="resizable">
  <p class="resizable">
    This paragraph is resizable in all directions, because the CSS `resize`
    property is set to `both` on this element.
  </p>
</div>

下面是 CSS 的样式:

.resizable {
  resize: both;
  overflow: scroll;
  border: 1px solid black;
}
div {
  height: 300px;
  width: 300px;
}
p {
  height: 200px;
  width: 200px;
}

参考资料

https://developer.mozilla.org/en-US/docs/Web/CSS/resize

https://www.amitmerchant.com/resize-any-dom-element-using-two-lines-css/

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言