html - 如果包含的元素的大小太大,如何减少 div 的左边距?
问题描述
我有要为网络格式化的带有方程式的文本。这些方程采用嵌入式 SVG 的形式。在下面的示例中,我将它们替换为固定大小的div
. 这个 SVG 元素在一个div
明确意味着包含 SVG 的内部。
方程在左侧有一个小的(在示例中为 3em)边距。这是通过设置包含的边距来实现的div
大型方程式(太宽而无法容纳页面)需要按比例缩小。我通过将svg
max-width
属性设置为 100% 来实现这一点。但是,缩小等式看起来有点有趣,但保留相对较大的左边距不变。因此,如果 SVG 的大小大于分配给它的 100% 宽度,我也希望减小此边距的大小。
我确信有一种直接的方法可以做到这一点,但我似乎找不到任何解决方案。
在下面的示例中,#equation2
它太宽,并且正在按比例缩小。我怎样才能减少包含 div 的边距?(如果我需要重新考虑 HTML 结构,这也很好。)
html {
background-color: red;
}
body {
background-color: white;
margin: 1em;
width: 20em;
}
div.math {
margin-left: 3em;
}
div.math div {
max-width: 100%;
}
#equation1 {
height: 1em;
width: 8em;
background-color: gray;
}
#equation2 {
height: 1em;
width: 30em;
background-color: gray;
}
<html><body>
<p>Lorem ipsum...</p>
<div class='math'>
<div id='equation1'></div>
</div>
<p>Lorem ipsum...</p>
<div class='math'>
<div id='equation2'></div>
</div>
<p>Lorem ipsum...</p>
</body></html>
解决方案
使用 flexbox 并使用伪元素模拟边距,然后您可以依靠收缩效果:
html {
background-color: red;
}
body {
background-color: white;
margin: 1em;
width: 20em;
}
div.math {
display:flex;
}
div.math::before {
content:"";
flex-basis:3em;
flex-shrink:3; /* control the shrink factor*/
min-width:5px; /* define a min value*/
}
div.math > div {
height: 1em;
width: 8em;
background-color: gray;
}
<p>Lorem ipsum...</p>
<div class='math'>
<div id='equation1'></div>
</div>
<p>Lorem ipsum...</p>
<div class='math'>
<div id='equation2' style="width:20em"></div>
</div>
<p>Lorem ipsum...</p>
<div class='math'>
<div id='equation2' style="width:23em"></div>
</div>
<p>Lorem ipsum...</p>
<div class='math'>
<div id='equation2' style="width:25em"></div>
</div>
<p>Lorem ipsum...</p>
<div class='math'>
<div id='equation2' style="width:30em"></div>
</div>
<p>Lorem ipsum...</p>
推荐阅读
- python - 如何增加 csv 文件的默认列宽,以便在打开文件时所有文本都正确适合?
- r - lm函数翻转交互项的顺序
- c++ - 如何区分 llvm IR 代码中的堆栈/堆地址?
- jquery - 淡出容器,改变内容,淡入容器
- c - 通过插入新元素的链表c编程错误
- avro - org.apache.avro.SchemaParseException:“枚举”不是定义的名称
- jquery - 为什么没有按预期添加和删除我的课程?
- java - la4j 主要特征值 - 在 java 8 中将命令式算法转换为函数式风格
- c++ - 错误:“fuse_operations_compat2”没有名为“readdir”的非静态数据成员
- javascript - 在一个图中为多个图形自定义工具提示