html - div 中的 div 和文本行为怪异
问题描述
我想在 div“firstquad”内水平和垂直居中文本“name”。我希望 div 具有 100% 的宽度和 25% 的高度。但是 div 的宽度远远超过 100%。对于文本,我将顶部和左侧设置为 50%。文本应该居中,并且 div 应该水平适合页面,但它是这样的。有什么帮助吗?
body {
padding: 0%;
margin: 0%;
height: 300%;
width: 100%;
background-color: cornsilk;
}
#firstquad {
position: relative;
width: 100%;
height: 25%;
top: 0%;
text-align: center;
background-color: blue;
}
#name {
position: relative;
top: 50%;
left: 50%;
color: white;
}
<div id="firstquad">
<h1 id="name">ASEF DIAN</h1>
</div>
解决方案
两者div
和h1
本身都是块级元素。
块级元素的行为方式是
- 他们在自己之前和之后创建一个换行符
- 他们抓住尽可能多的水平空间
这意味着<div><h1></h1></div>
您可以拥有div
尽可能多的水平空间(整页宽度)。在其中,h1
行为相同,消耗周围div
允许的所有水平空间。
现在position: relative; left: 50%;
你不要改变它的宽度h1
——你只需改变它的渲染开始的位置。显然,这导致了h1
部分外移div
。添加边框以便您了解:
body { margin: 30px; }
div { border: 2px dotted grey; }
h1 { border: 2px dashed blue; }
<div><h1>Test</h1></div>
现在移动h1
(只是稍微移动,所以效果更明显):
body { margin: 30px; }
div { border: 2px dotted grey; }
h1 { border: 2px dashed blue; position: relative; left: 20px; }
<div><h1>Test</h1></div>
推荐阅读
- javascript - 将返回语句列为变量并放入标记反应
- javascript - 无法将道具从父组件传递给子组件
- reactjs - 如何在反应中编辑从休息呼叫收到的数据?
- reactjs - React 如何使用 Hooks 通过按钮更改尺寸?
- python - 在 python 中将文件从本地上传到 Azure Blob 存储的问题
- java - retryTemplate.execute 没有被调用
- android - Room DB 迁移 SELECT 语句导致 SQLiteException
- javascript - 等待状态在 React native 中设置后如何打开模式?
- java - 使用 Rest Api 的 Spring Boot CLI 客户端
- vuex - Vuejs - 将属性添加到具有反应性的数组中的每个项目