Html / css: центральные кнопки в div

Я определил страницу html / css со следующим кодом:

<!DOCTYPE html>
<html><head>
<title>TEST1</title>

<meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8">
<meta http-equiv = "X-UA-Compatible" content = "IE=edge">
<meta name = "viewport" content = "width=device-width, initial-scale=1">

<style>
.main-rows {
	display: flex;
	flex-flow: column;
}

.main-columns {
	display: flex;
	flex-flow: row;
}

.dividerv {
	background: black;
	width: 4px;
}

.dividerh {
	background: black;
	height: 4px;
}

</style>
</head>
<body>
	<div class = "main-rows">
		<div>
		This is an example text <br/>
		This is an example text <br/>
		This is an example text <br/>
		This is an example text <br/>
		<br/>
		<br/>
		</div>

		<div class = "dividerh"></div>

		<div class = "main-columns">
			<div class = "dividerv"></div>
			<div class = "main-rows">
				<div style = "border: 1px solid black;">
					<button style = "margin: 0 auto;">&rarr;</button>
					<div>blah, blah, blah, blah</div>
					<button>&larr;</button>
				</div>
				<div style = "border: 1px solid black;">
					<button style = "margin: 0 auto;">&rarr;</button>
					<div>blah, blah, blah, blah</div>
					<button>&larr;</button>
				</div>
			</div>
			<div class = "dividerv"></div>
			<div class = "main-rows">
				<div style = "border: 1px solid black;">
					<button style = "margin: 0 auto;">&rarr;</button>
					<div>blah, blah, blah, blah</div>
					<button>&larr;</button>
				</div>
			</div>

			<div class = "dividerv"></div>
		</div>
	</div>
</body>
</html>

Главный вопрос: как расположить кнопки со стрелками по горизонтали? Я протестировал несколько решений, основанных на «выравнивании текста» и подобных, но безуспешно (пожалуйста, примите это во внимание, прежде чем отмечать как дублированные).

Кроме того, будет приветствоваться, как упростить этот код. В частности, как пропустить необходимость повторения блоков как:

            <div style = "border: 1px solid black;">
                <button style = "margin: 0 auto;">&rarr;</button>
                <div>blah, blah, blah, blah</div>
                <button>&larr;</button>
            </div>

которые будут меняться с одного на другое только в действиях, связанных с каждой кнопкой (функции «onclick»), и в тексте, который появляется между кнопками. Может быть, решение javascript может разрешить эту часть.

Большое спасибо.

Возможный дубликат Что именно нужно для "margin: 0 auto;" работать?

Maharkus 04.04.2018 14:07
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
67
2

Ответы 2

Просто добавьте это в свой css:

button{
  display: block;
  margin: 0 auto;
}

Это нужно постоянно повторять, в HTML нет чего-то вроде переменных.

Вы можете создать файл PHP с кодом HTML, а затем включить его через PHP (<?php include "filename.php" ?>). То же самое можно сделать с помощью javascript, но другим способом.

.main-rows {
	display: flex;
	flex-flow: column;
}

.main-columns {
	display: flex;
	flex-flow: row;
}

.dividerv {
	background: black;
	width: 4px;
}

.dividerh {
	background: black;
	height: 4px;
}

button{
  display: block;
  margin: 0 auto;
  }
<!DOCTYPE html>
<html><head>
<title>TEST1</title>

<meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8">
<meta http-equiv = "X-UA-Compatible" content = "IE=edge">
<meta name = "viewport" content = "width=device-width, initial-scale=1">
</head>
<body>
	<div class = "main-rows">
		<div>
		This is an example text <br/>
		This is an example text <br/>
		This is an example text <br/>
		This is an example text <br/>
		<br/>
		<br/>
		</div>

		<div class = "dividerh"></div>

		<div class = "main-columns">
			<div class = "dividerv"></div>
			<div class = "main-rows">
				<div style = "border: 1px solid black;">
					<button style = "margin: 0 auto;">&rarr;</button>
					<div>blah, blah, blah, blah</div>
					<button>&larr;</button>
				</div>
				<div style = "border: 1px solid black;">
					<button style = "margin: 0 auto;">&rarr;</button>
					<div>blah, blah, blah, blah</div>
					<button>&larr;</button>
				</div>
			</div>
			<div class = "dividerv"></div>
			<div class = "main-rows">
				<div style = "border: 1px solid black;">
					<button style = "margin: 0 auto;">&rarr;</button>
					<div>blah, blah, blah, blah</div>
					<button>&larr;</button>
				</div>
			</div>

			<div class = "dividerv"></div>
		</div>
	</div>
</body>
</html>

Спасибо за Ваш ответ. Еще один момент: для объединения вертикального и горизонтального стека элементов я использую стили «main-columns» и «main-rows». Это хороший метод или есть более простой?

pasaba por aqui 04.04.2018 14:21

Имена классов не имеют значения, вы можете называть его hello-world, и он все равно будет хорош. Но если вы имели в виду стиль. Я не очень хорошо разбираюсь в flexbox, поэтому не могу вам с этим помочь.

Jeremy 04.04.2018 14:24

Да, я имел в виду стиль или метод достижения этого результата. Иногда мне кажется, что у flexbox должен быть более простой способ.

pasaba por aqui 04.04.2018 14:26

обновите свой CSS следующим образом.

button {
  display: inline-block;
  margin: 0 auto;
}

Чтобы применить трюк с margin: 0 auto;, вам нужен display: block; ... Это не работает

Jeremy 04.04.2018 14:22

Подтверждаю, что ожидаемого результата нет.

pasaba por aqui 04.04.2018 14:27

Другие вопросы по теме