html - 响应式填充/宽度取决于内容

标签 html css

假设我有两个 div:

<div id="wrapper">
     <div id="text">Text!</div>
</div>

id 为“wrapper”的div 需要将其内容的宽度作为其最小宽度添加7px 的值。最大宽度是其内容的宽度加上 15px。当无法设置最大宽度时,id 为“wrapper”的 div 的宽度应该是响应式的,但可以设置一个介于允许的最小值和最大值之间的值。我将如何使用 CSS 来实现? (它可以是调整填充或宽度)。

我试过使用 flex css 属性,例如:

flex: 0 1 10%;

它确实使宽度响应,但我无法根据其内容的宽度加上像素数来定义最小值和最大值。

我试过使用 clamp css 函数进行填充,例如:

padding-right: clamp(7px, 50%, 15px);
padding-left: clamp(7px, 50%, 15px);

但是没有用。我将如何使用 CSS 来实现?

最佳答案

使用伪元素来模拟padding,并考虑使用flexbox来定义它们的大小。

调整屏幕大小以查看填充大小如何变化:

#wrapper {
  display:inline-flex;
  max-width:100%;
}
#wrapper::before,
#wrapper::after {
  content:"";
  min-width:7px;
  width:15px;
  flex-shrink: 9999; /* to shrink faster than the text*/
  
  background:red; /* to illustrate*/
}
<div id="wrapper">
  <div id="text">some responsive Text here!</div>
</div>

关于html - 响应式填充/宽度取决于内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64537663/

相关文章:

javascript - 如何创建可拖动的 Web 组件

html - 为什么导航不在标题的中心对齐?

javascript - 如何对加载的 XML 数据进行排序

javascript - jquery .show() 后导航 css 不工作

php - 用颜色值填充数据库

html - 填充与 Firefox 4-8 中的边框冲突? (HTML/CSS)

javascript - 如何使弹出窗口仅在单击其外部的任何位置时消失

css - flexdashboard布局中的两个侧边栏

javascript - WebStorm 无法识别使用 webpack 别名导入的 Sass 文件

javascript - 如何使用 JavaScript 关闭 iframe 滚动?