我制作了一个导航标题(i.d.k.你怎么称呼它),我想要一些文字在它的中间。
它基本上是一个黑色的条形图,右边有一些导航按钮(例如Home,关于我们,信息,图库......)左边有一个标志,现在我想在那个条形图中间放一些文字。我无法让它发挥作用。
这是我到目前为止的代码。
/* Global settings */
* {
font-family: Roboto;
padding: 0;
margin: 0;
}
a {
text-decoration: none;
}
/* Header settings */
.header {
height: 50px;
width: 100%;
background-color: #212121;
position: fixed;
text-align: center;
}
.header ul {
height: 100%;
float: right;
position: relative;
right: 50px;
}
.header li {
display: inline-block;
height: 100%;
width: 75px;
text-align: center;
}
.header li:hover {
background-color: #616161;
}
.header a {
display: block;
color: #FAFAFA;
height: 100%;
line-height: 50px;
border: 1px solid orange;
}
.header img {
height: 100%;
color: #FAFAFA;
float: left;
}
.header h1 {
color: #FAFAFA;
Line-height: 50px;
display: inline-block;
}
<body>
<div class="header">
<h1>The text I want to be centered</h1>
<ul>
<li><a href="">Home</a></li>
<li><a href="">Info</a></li>
<li><a href="">Contact</a></li>
<li><a href="">About</a></li>
</ul>
<img src="" alt="Logo" />
</div>
</body>
答案 0 :(得分:0)
你可以试试这个:
HTML
<body>
<div class="header">
<img src="" alt="Logo" />
<h1>The text I want to be centered</h1>
<ul>
<li><a href="">Home</a></li>
<li><a href="">Info</a></li>
<li><a href="">Contact</a></li>
<li><a href="">About</a></li>
</ul>
</div>
</body>
CSS
* {
font-family: Roboto;
padding: 0;
margin: 0;
}
a {
text-decoration: none;
}
/* Header settings */
.header {
width: 100%;
background-color: #212121;
position: fixed;
text-align: center;
display:flex;
justify-content:space-between;
padding:0 10px;
box-sizing: border-box;
}
.header ul {
height: 100%;
position: relative;
}
.header li {
display: inline-block;
height: 100%;
width: 75px;
text-align: center;
}
.header li:hover {
background-color: #616161;
}
.header a {
display: block;
color: #FAFAFA;
height: 100%;
line-height: 50px;
border: 1px solid orange;
}
.header img {
height: 100%;
color: #FAFAFA;
}
.header h1 {
color: #FAFAFA;
line-height: 50px;
display: inline-block;
}
以上操作将文本放置在距徽标和菜单相同的位置。因此,文本不会精确居中,但可能看起来更“正确”。
答案 1 :(得分:0)
以下是使用Flexible Box的解决方案。 Flexbox在旧版本的IE中确实存在兼容性问题,但对于非恐龙浏览器,它的效果非常好。这是一个good link,可以了解更多信息。
您可能需要调整h1
的大小以避免文本换行,并修复li
上的某些边框。
编辑:我将flex: 1 1 0
添加到.flex-item
,这将使所有元素的大小相同,从而使文本居中。我也从单个元素中删除了flex
规则。这在宽屏幕上看起来最好!
* {
font-family: Roboto;
padding: 0;
margin: 0;
}
a {
text-decoration: none;
}
div.header {
display: flex;
background-color: #212121;
}
.flex-item {
margin: auto;
height: 50px;
flex: 1 1 0;
}
/* Used to make 3 sections in the head*/
h1.flex-item {
text-align: center;
line-height: 50px;
color: #FAFAFA;
}
ul.flex-item {
display: flex;
}
img.flex-item {
color: #FAFAFA;
}
/* Used to make NAV*/
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
li.flex-item-li {
width: 75px;
text-align: center;
line-height: 50px;
}
li.flex-item-li a {
display: block;
color: #FAFAFA;
line-height: 50px;
border: 1px solid orange;
}
li.flex-item-li:hover {
background-color: #616161;
}
<body>
<div class="header">
<img class="flex-item" src="" alt="Logo" />
<h1 class="flex-item">Text I want to be centered</h1>
<ul class="flex-item">
<li class="flex-item-li"><a href="">Home</a></li>
<li class="flex-item-li"><a href="">Info</a></li>
<li class="flex-item-li"><a href="">Contact</a></li>
<li class="flex-item-li"><a href="">About</a></li>
</ul>
</div>
</body>
答案 2 :(得分:0)
它已经位于中心位置,但由于右侧菜单和左侧标识,它已被推离原来的中心位置。
因此,要解决此问题,只需通过添加边距将文本拉向中心即可。 像这样:
.header h1 {
color: #FAFAFA;
Line-height: 50px;
display: inline-block;
margin-right: -200px;
}
在整页中查看此代码段以获取结果:
* {
font-family: Roboto;
padding: 0;
margin: 0;
}
a {
text-decoration: none;
}
/* Header settings */
.header {
height: 50px;
width: 100%;
background-color: #212121;
position: fixed;
text-align: center;
}
.header ul {
height: 100%;
float: right;
position: relative;
right: 50px;
}
.header li {
display: inline-block;
height: 100%;
width: 75px;
text-align: center;
}
.header li:hover {
background-color: #616161;
}
.header a {
display: block;
color: #FAFAFA;
height: 100%;
line-height: 50px;
border: 1px solid orange;
}
.header img {
height: 100%;
color: #FAFAFA;
float: left;
}
.header h1 {
color: #FAFAFA;
line-height: 50px;
display: inline-block;
margin-right: -200px;
}
&#13;
<body>
<div class="header">
<h1>The text I want to be centered</h1>
<ul>
<li><a href="">Home</a></li>
<li><a href="">Info</a></li>
<li><a href="">Contact</a></li>
<li><a href="">About</a></li>
</ul>
<img src="" alt="Logo" />
</div>
</body>
&#13;
答案 3 :(得分:0)
我几乎只通过将导航和徽标放在flex div中来实现它。现在我只需要在文本的顶部获得flexdiv。如果有人能够解释说真正的快速会很好,但最重要的部分就完成了。
http://codepen.io/werner1107/pen/EWMPVM
HTML:
<body>
<div class="header">
<h1>The text I want to be centered</h1>
<div class="test">
<img src="" alt="Logo" />
<ul>
<li><a href="">Home</a></li>
<li><a href="">Info</a></li>
<li><a href="">Contact</a></li>
<li><a href="">About</a></li>
</ul>
</div>
</div>
</body>
CSS:
/* Global settings */
* {
font-family: Roboto;
padding: 0;
margin: 0;
/* border: 1px solid orange; */
}
a {
text-decoration: none;
}
/* Header settings */
.header {
height: 50px;
width: 100%;
background-color: #212121;
}
.header h1 {
color: #FAFAFA;
line-height: 50px;
left: 0;
right: 0;
text-align: center;
}
.test {
display: flex;
justify-content: space-between;
width: 100%;
}
.test img {
height: 100%;
width: auto;
color: #FAFAFA;
}
.test ul {
height: 100%;
}
.test li {
display: inline-block;
list-style-type: none;
height: 100%;
text-align: center;
}
.test a {
display: inline-block;
height: 100%;
color: #FAFAFA;
width: 75px;
line-height: 50px;
}
.test li:hover {
background-color: #616161;
}