gpt4 book ai didi

html - 通过忽略其他元素在 div 中居中一个元素

转载 作者:太空宇宙 更新时间:2023-11-04 15:53:32 26 4
gpt4 key购买 nike

我想创建一个标题栏并将我的标题/ Logo 居中,但它没有完全居中。

body {
margin: 0;
background: black;
}

.link {
text-decoration: none;
}

#header {
height: 80px;
display: flex;
align-items: center;
background-color: #000000;
}

#headerTitleContainer {
margin: 0 auto;
}

#headerTitle {
color: #97d700;
}

#menuBtnContainer {
display: inline-block;
cursor: pointer;
margin-right: 10px;
}

@media (min-width: 300px) {
#menuBtnContainer {
margin-left: 20px;
}
}

@media (max-width: 299px) {
#menuBtnContainer {
margin-left: 5px;
}
}

.menuIconBar {
width: 35px;
height: 5px;
margin: 6px 0 6px 0;
transition: 0.4s;
background-color: #97d700;
}
<div id="header">
<div id="menuBtnContainer">
<div class="menuIconBar" id="menuIconBar1"></div>
<div class="menuIconBar" id="menuIconBar2"></div>
<div class="menuIconBar" id="menuIconBar3"></div>
</div>
<div id="headerTitleContainer">
<h1><a class="link" id="headerTitle" href="/">MyTitle</a></h1>
</div>
</div>

如您所见,MyTitle 没有正确居中。我怎样才能做到这一点?我在取出菜单按钮时实现了它,但显然我需要这个按钮。我只希望它始终位于酒吧的中央。但它不应与菜单按钮重叠。

这就是为什么我在菜单按钮中添加了 margin-right: 10px; 的原因。

最佳答案

一个解决方案是使按钮的宽度为 0 并在其上设置 overflow:visible:

body {
margin: 0;
background: black;
}

.link {
text-decoration: none;
}

#header {
height: 80px;
display: flex;
align-items: center;
background-color: #000000;
}

#headerTitleContainer {
margin: 0 auto;
}

#headerTitle {
color: #97d700;
}

#menuBtnContainer {
display: inline-block;
cursor: pointer;
width: 0;
overflow: visible;
}

@media (min-width: 300px) {
#menuBtnContainer {
margin-left: 20px;
margin-right:-20px;
}
}

@media (max-width: 299px) {
#menuBtnContainer {
margin-left: 5px;
}
}

.menuIconBar {
width: 35px;
height: 5px;
margin: 6px 0 6px 0;
transition: 0.4s;
background-color: #97d700;
}
<div id="header">
<div id="menuBtnContainer">
<div class="menuIconBar" id="menuIconBar1"></div>
<div class="menuIconBar" id="menuIconBar2"></div>
<div class="menuIconBar" id="menuIconBar3"></div>
</div>
<div id="headerTitleContainer">
<h1><a class="link" id="headerTitle" href="/">MyTitle</a></h1>
</div>
</div>

或者简单地使按钮成为绝对位置而不改变任何其他属性,并且不要忘记使父级 position:relative(我更喜欢这个):

body {
margin: 0;
background: black;
}

.link {
text-decoration: none;
}

#header {
height: 80px;
display: flex;
align-items: center;
background-color: #000000;
position:relative;
}

#headerTitleContainer {
margin: 0 auto;
}

#headerTitle {
color: #97d700;
}

#menuBtnContainer {
display: inline-block;
cursor: pointer;
margin-right: 10px;
position: absolute;
}

@media (min-width: 300px) {
#menuBtnContainer {
margin-left: 20px;
margin-right:-20px;
}
}

@media (max-width: 299px) {
#menuBtnContainer {
margin-left: 5px;
}
}

.menuIconBar {
width: 35px;
height: 5px;
margin: 6px 0 6px 0;
transition: 0.4s;
background-color: #97d700;
}
<div id="header">
<div id="menuBtnContainer">
<div class="menuIconBar" id="menuIconBar1"></div>
<div class="menuIconBar" id="menuIconBar2"></div>
<div class="menuIconBar" id="menuIconBar3"></div>
</div>
<div id="headerTitleContainer">
<h1><a class="link" id="headerTitle" href="/">MyTitle</a></h1>
</div>
</div>

另一种解决方案是使用 :after 添加第三个隐藏元素,其宽度与按钮相同,以便标题居中:

body {
margin: 0;
background: black;
}

.link {
text-decoration: none;
}

#header {
height: 80px;
display: flex;
align-items: center;
background-color: #000000;
}

#header:after {
content: "";
width: 35px;
margin-left: 10px;
}

#headerTitleContainer {
margin: 0 auto;
}

#headerTitle {
color: #97d700;
}

#menuBtnContainer {
display: inline-block;
cursor: pointer;
margin-right: 10px;
}

@media (min-width: 300px) {
#menuBtnContainer {
margin-left: 20px;
}
#header:after {
margin-right: 20px;
}
}

@media (max-width: 299px) {
#menuBtnContainer {
margin-left: 5px;
}
}

.menuIconBar {
width: 35px;
height: 5px;
margin: 6px 0 6px 0;
transition: 0.4s;
background-color: #97d700;
}
<div id="header">
<div id="menuBtnContainer">
<div class="menuIconBar" id="menuIconBar1"></div>
<div class="menuIconBar" id="menuIconBar2"></div>
<div class="menuIconBar" id="menuIconBar3"></div>
</div>
<div id="headerTitleContainer">
<h1><a class="link" id="headerTitle" href="/">MyTitle</a></h1>
</div>
</div>

关于html - 通过忽略其他元素在 div 中居中一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47975753/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com