#html #css
#HTML #css
Вопрос:
Я пытаюсь создать макет, который включает в себя внешний DIV
элемент с двумя внутренними DIV
элементами.
Оба из двух внутренних DIV
s должны быть центрированы по вертикали.
Один из внутренних DIV
s должен быть привязан к правому краю внешнего DIV
(с отступом в несколько пикселей).
Другой внутренний DIV
элемент должен быть горизонтально центрирован во всем внешнем DIV
.
Что-то вроде этого.
___________________________
| |
|[ some text ][S]|
|_________________________|
«Некоторый текст» DIV
может находиться за буквой «S» DIV
или рядом с ней, это не имеет большого значения.
Я не могу использовать ::after
, поскольку к «S» DIV
должно быть прикреплено onClick
событие (на самом деле это кнопка поиска внутри DIV
)
Я перепробовал множество различных способов добиться этого, но ничего не получается.
Прямо сейчас у меня есть следующее, которое использует display: flex
, что близко, но не совсем правильно.
#resultBox {
border: 1px dotted black;
border-radius: 5px;
margin-top: 25px;
margin-bottom: 15px;
padding: 5px;
padding-top: 10px;
background-color: rgba(255, 255, 255, 0.2);
display: flex;
align-items: center;
justify-content: center;
}
#resultText {
font-family: myFont;
font-size: 2.8vw;
letter-spacing: 0.18em;
}
#searchButton {
font-size: 1.5vw;
cursor: pointer;
padding: 20px;
}
<div id="resultBox">
<div id="resultText">
<span id="part1">Here's</span>
<span id="part2">some</span>
<span id="part3">text</span>
</div>
<div id="searchButton" onClick="search();">amp;#x1F50E</div>
</div>
Это приближает меня, но я хочу searchButton
DIV
, чтобы оно было справа, независимо от содержимого resultText
DIV
.
Я думаю, я мог бы использовать table
, но это кажется немного старомодным.
Комментарии:
1. Вы ищете:
contenteditable="true"
?2. Нет, извините. Вопрос не имеет ничего общего с возможностью редактирования содержимого… Речь идет о выравнивании DIV значка поиска. Я отредактирую вопрос, чтобы сделать его более понятным.
3. Хорошо, это было просто чудо, пожалуйста, посмотрите, чтобы ответить
Ответ №1:
Чтобы сохранить текст в центре и установить значок поиска справа, вы можете просто установить margin: auto для вашего текста:
#resultText {
font-family: myFont;
font-size: 2.8vw;
letter-spacing: 0.18em;
padding-left: calc(1.5vw 40px); /** To compensate icon size on the right we add padding-left similar width **/
margin: auto;
}
ДЕМОНСТРАЦИЯ
#resultBox {
border: 1px dotted black;
border-radius: 5px;
margin-top: 25px;
margin-bottom: 15px;
padding: 5px;
padding-top: 10px;
background-color: rgba(255, 255, 255, 0.2);
display: flex;
align-items: center;
justify-content: center;
}
#resultText {
font-family: myFont;
font-size: 2.8vw;
letter-spacing: 0.18em;
padding-left: calc(1.5vw 40px); /** To compensate icon size on the right we add padding-left similar width **/
margin: auto;
}
#searchButton {
font-size: 1.5vw;
cursor: pointer;
padding: 20px;
}
<div id="resultBox">
<div id="resultText">
<span id="part1">Here's</span>
<span id="part2">some</span>
<span id="part3">text</span>
</div>
<div id="searchButton" onClick="search();">amp;#x1F50E</div>
</div>