Я пытался сделать так, чтобы текст «Заголовок» был по центру, а значок оставался.
text-align: center; у меня не подойдет.
Кто-нибудь может вести меня в правильном направлении?
Спасибо.
IMG:
.header {
padding-top: 15px;
padding-bottom: 15px;
color: #fff;
background: #333;
}
.header a {
text-align: center;
text-decoration: none;
color: #fff;
font-size: 32px;
vertical-align: middle;
}
#hamburger {
color: white;
font-size: 32px;
}
.menu {
display: inline-block;
}<div class = "headerwrapper">
<div class = "header">
<div class = "menuWrap">
<div class = "menu open">
<span id = "hamburger" class = "fas fa-bars hvr-grow"></span>
</div>
<a href = "index.php">Header</a>
</div>
</div>
</div>





Вы должны поместить выравнивание текста: центр в свой класс .header.
В дополнение к этому вы также должны поместить свойство float:left; в класс .menu.
Вот пример:
.header {
padding-top: 15px;
padding-bottom: 15px;
color: #fff;
background: #333;
text-align:center;
}
.header a {
text-align: center;
text-decoration: none;
color: #fff;
font-size: 32px;
vertical-align: middle;
}
#hamburger {
color: white;
font-size: 32px;
}
.menu {
display: inline-block;
float:left;
}<div class = "headerwrapper">
<div class = "header">
<div class = "menuWrap">
<div class = "menu open">
<span id = "hamburger" class = "fas fa-bars hvr-grow">a</span>
</div>
<a href = "index.php">Header</a>
</div>
</div>
</div>Это будет центрировать весь заголовок, а значит, и гамбургер-меню. Это не отвечает на вопрос OP.
.header {
padding-top: 15px;
padding-bottom: 15px;
color: #fff;
background: #333;
text-align: center;
}
.header a {
text-align: center;
text-decoration: none;
color: #fff;
font-size: 32px;
vertical-align: middle;
}
#hamburger {
color: white;
font-size: 32px;
}
.menu {
display: inline-block;
vertical-align: middle;
float: left;
padding: 0 0 0 15px;
}<link rel = "stylesheet" href = "https://use.fontawesome.com/releases/v5.0.10/css/all.css" integrity = "sha384-+d0P83n9kaQMCwj8F4RJB66tzIwOKmrdb46+porD/OvrJ+37WqIM7UoBtwHO6Nlg" crossorigin = "anonymous">
<div class = "headerwrapper">
<div class = "header">
<div class = "menuWrap">
<div class = "menu open">
<span id = "hamburger" class = "fas fa-bars hvr-grow"></span>
</div>
<a href = "index.php">Header</a>
</div>
</div>
</div>Вам нужно добавить выравнивание текста в свой класс заголовка .header, он должен выглядеть примерно так
.header {
padding-top: 15px;
padding-bottom: 15px;
color: #fff;
background: #333;
text-align: center;
}
Центрирование может быть выполнено с помощью text-align: center; на .header.
Однако это также повлияет на ваш значок гамбургера (который я заменил на «X» ниже, чтобы сделать его видимым), поэтому примените position: absolute к его контейнеру .menu и используйте параметр left для определения расстояния от левой границы:
.header {
padding-top: 15px;
padding-bottom: 15px;
color: #fff;
background: #333;
text-align: center;
}
.header a {
text-align: center;
text-decoration: none;
color: #fff;
font-size: 32px;
}
#hamburger {
color: white;
font-size: 32px;
}
.menu {
position: absolute;
left: 30px;
}<div class = "headerwrapper">
<div class = "header">
<div class = "menuWrap">
<div class = "menu open">
<span id = "hamburger" class = "fas fa-bars hvr-grow">X</span>
</div>
<a href = "index.php">Header</a>
</div>
</div>
</div>Это отлично работает на настольных компьютерах, однако на мобильных устройствах текст по-прежнему не выравнивается.
Тогда, скорее всего, у вас есть другие правила CSS для мобильной версии в медиа-запросах, которые вы не публиковали (?)
Не обращайте внимания на мой последний комментарий, я забыл удалить медиа-запрос. Спасибо!
Изменить так:
.header a {
position: absolute;
left: 50%;
transform: translate(-50%);
//Other css...
}
.header {
padding-top: 15px;
padding-bottom: 15px;
color: #fff;
background: #333;
}
.header a {
text-align: center;
text-decoration: none;
color: #fff;
font-size: 32px;
vertical-align: middle;
position: absolute;
left: 50%;
transform: translate(-50%);
}
#hamburger {
color: white;
font-size: 32px;
}
.menu {
display: inline-block;
}<div class = "headerwrapper">
<div class = "header">
<div class = "menuWrap">
<div class = "menu open">
<span id = "hamburger" class = "fas fa-bars hvr-grow">Icon</span>
</div>
<a href = "index.php">Header</a>
</div>
</div>
</div>
Пожалуйста, не могли бы вы показать нам CSS для класса menuWrap, потому что именно там вы захотите сделать text-align = center (а не в тексте привязки, длина которого равна только содержимому заголовка).