html - 浮动左元素和浮动右元素被标题(chrome)向上推
问题描述
我有一个向左浮动的 div,另一个向右浮动的 div 和一个在中间包含标题的 div,当页面变窄并且中间的 div 被向下推时,这是意料之中的,但它也将左右 div 推到了上方和在容器上,这是问题所在。
演示:https ://jsfiddle.net/3rnjq0vb/ ,需要调整预览大小才能看到问题
它似乎在边缘和火上按预期工作
.left {
float: left;
background-color: tomato;
height: 50px;
width: 200px;
}
.right {
float: right;
background-color: cyan;
height: 50px;
width: 700px;
}
.center {
display: inline-block;
}
body {
text-align: center;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Document</title>
</head>
<body>
<div class="left">left</div>
<div class="right">right</div>
<div class="center">
<h2>Some-text</h2>
</div>
</body>
</html>
解决方案
您可以做的一件事是给中心元素一个特定的宽度 - 容器的宽度减去其他两个元素的宽度,并将其浮动。
width: calc(100% - 900px);
它需要设置一个最小宽度,否则当视口变窄时它将被压扁。
这是一个片段:
.left {
float: left;
background-color: tomato;
height: 50px;
width: 200px;
}
.right {
float: right;
background-color: cyan;
height: 50px;
width: 700px;
}
.center {
display: inline-block;
float: left;
width: calc(100% - 900px);
min-width: 150px;
}
body {
text-align: center;
}
<body>
<div class="left">left</div>
<div class="right">right</div>
<div class="center">
<h2>Some-text</h2>
</div>
</body>
对于响应速度更快的方法 - 例如,两侧元素的宽度会随着视口的变化而变化,您可以根据在较窄视口上想要的结果来研究网格或 flex。
推荐阅读
- azure - Azure Front Door 产生大量带宽
- html - 加载效果重复。不重定向到主页
- java - 使用 Jackson2ObjectMapperBuilderCustomizer 的 Maven 依赖项是什么?对于一个spring mvc项目
- java - 无法连接到 Apache Karaf 中的 xmlrpc
- php - 在不使用数组的情况下获取两个字符串之间的差异
- javascript - 如何根据文本字段的值显示/隐藏一些元素?
- python-3.x - 如何使用python beautifulsoup在表格中的行之间提取蓝色隐藏文本
- express - 节点 Escpos 在第二次尝试时打印图像
- spring-security - Spring LDAP 无法获取外部记录的记录
- python - Python - 如何在 selenium 中打印网站的 javascript 变量?