#html #css #twitter-bootstrap-3 #css-position
#HTML #css #twitter-bootstrap-3 #css-position
Вопрос:
Я создаю систему показателей, которая покажет несколько десятков различных параметров вашего здоровья. Вот мой код ниже
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<title>Scorecard</title>
<style>
.sub-score {
margin-left: 20%;
color: #00FF00;
}
.category {
color: DodgerBlue;
}
</style>
</head>
<body>
<div class="container-fluid">
<br>
<div>
<h1 style="display: flex; align-items: center; justify-content: center; color: #FA0066;">SCORE</h1>
</div>
<br>
<br>
<div class="row" style="margin-left:10%">
<div class="col-lg-2 col-sm-3">
<h3 class="category">Sugar Level</h3>
<h2 class="sub-score">46<h2>
</div>
<div class="col-lg-2 col-sm-3">
<h3 class="category">Hemoglobin Level</h3>
<h2 class="sub-score">82<h2>
</div>
<div class="col-lg-2 col-sm-3">
<h3 class="category">Water</h3>
<h2 class="sub-score">46<h2>
</div>
<div class="col-lg-2 col-sm-3">
<h3 class="category">Blood Pressure</h3>
<h2 class="sub-score">54<h2>
</div>
<div class="col-lg-2 col-sm-3">
<h3 class="category">Security</h3>
<h2 class="sub-score">46<h2>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</body>
</html>
Вот как это выглядит в браузере
Как вы можете видеть, существуют различные параметры работоспособности, такие как has Sugar level
, Hemoglobin level
и т.д. Но если вы внимательно посмотрите, оценки не расположены по центру относительно соответствующих параметров, особенно для Water
и Security
. Теперь я не уверен, как мне центрировать его относительно параметра над оценками.
Я читал о позициях в css, таких как relative
и absolute
, но я не уверен, как мне использовать это по отношению к другому элементу. Я также пробовал display: flex; align-items: center;
использовать sub-score
div, но безрезультатно.
Как я могу расположить числа относительно параметров?
Комментарии:
1. Поскольку вы используете bootstrap3, вы можете продолжать перемещать элементы, добавляя дополнительный контейнер между столбцами и содержимым. codepen.io/anon/pen/rbMepV
Ответ №1:
На самом деле вы нашли решение, когда стилизовали основной h1. просто нужен немного больший подход. content-justify
: center
.
Способ 1
Я пишу этот метод, потому что вы используете flex с bootstrap 3. Итак, вы можете переключиться на 4. Смотри также.
.sub-score {
color: #00FF00;
}
.category {
color: DodgerBlue;
}
.center {
display: flex!important;
align-items: center!important;
justify-content: center!important;
}
.column {
flex-direction: column!important;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<div class="container-fluid">
<br>
<div>
<h1 class="center">SCORE</h1>
</div>
<br>
<br>
<div class="row">
<div class="col-lg-2 col-sm-3 column center">
<h3 class="category">Sugar Level</h3>
<h2 class="sub-score">46
<h2>
</div>
<div class="col-lg-2 col-sm-3 column center">
<h3 class="category">Hemoglobin Level</h3>
<h2 class="sub-score">82
<h2>
</div>
<div class="col-lg-2 col-sm-3 column center">
<h3 class="category">Water</h3>
<h2 class="sub-score">46
<h2>
</div>
<div class="col-lg-2 col-sm-3 column center">
<h3 class="category">Blood Pressure</h3>
<h2 class="sub-score">54
<h2>
</div>
<div class="col-lg-2 col-sm-3 column center">
<h3 class="category">Security</h3>
<h2 class="sub-score">46
<h2>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
Способ 2
.sub-score {
color: #00FF00;
}
.category {
color: DodgerBlue;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<div class="container-fluid">
<br>
<div>
<h1 class="text-center">SCORE</h1>
</div>
<br>
<br>
<div class="row">
<div class="col-lg-2 col-sm-3 text-center">
<h3 class="category">Sugar Level</h3>
<h2 class="sub-score">46
<h2>
</div>
<div class="col-lg-2 col-sm-3 text-center">
<h3 class="category">Hemoglobin Level</h3>
<h2 class="sub-score">82
<h2>
</div>
<div class="col-lg-2 col-sm-3 text-center">
<h3 class="category">Water</h3>
<h2 class="sub-score ">46
<h2>
</div>
<div class="col-lg-2 col-sm-3 text-center">
<h3 class="category">Blood Pressure</h3>
<h2 class="sub-score">54
<h2>
</div>
<div class="col-lg-2 col-sm-3 text-center">
<h3 class="category">Security</h3>
<h2 class="sub-score">46
<h2>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
text-center
вспомогательные классы bootstrap 3.
Комментарии:
1. миграция на bootstrap4 также может быть хорошим вариантом 😉 со ссылкой на getbootstrap.com/docs/4.3/utilities/flex чтобы помочь обновить классы при необходимости
2. Итак, да, я видел, что друг использовал flex для
h1
. Имело бы смысл создать решение таким же образом 🙂3. @G-Cyr, amp; Souvik-Ray на самом деле, да, было бы наиболее полезным 4 прохода.
4. @SouvikRay Добро пожаловать. Я обновляю свой ответ более подробной информацией, пожалуйста, посетите.
5. Тем временем спасибо @G-Cyr за вклад в версию 4.
Ответ №2:
Скопируйте приведенный ниже код в пустой HTML-файл и откройте его в своем браузере. Вы получите желаемый результат.
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<title>Scorecard</title>
<style>
.sub-score {
text-align: center;
color: #00FF00;
}
.category {
text-align: center;
color: DodgerBlue;
}
</style>
</head>
<body>
<div class="container-fluid">
<br>
<div>
<h1 style="display: flex; align-items: center; justify-content: center; color: #FA0066;">SCORE</h1>
</div>
<br>
<br>
<div class="row" style="margin-left:10%">
<div class="col-lg-2 col-sm-3">
<h3 class="category">Sugar Level</h3>
<h2 class="sub-score">46
</h2>
</div>
<div class="col-lg-3 col-sm-3">
<h3 class="category">Hemoglobin Level</h3>
<h2 class="sub-score">82
</h2>
</div>
<div class="col-lg-2 col-sm-3">
<h3 class="category">Water</h3>
<h2 class="sub-score">46
</h2>
</div>
<div class="col-lg-2 col-sm-3">
<h3 class="category">Blood Pressure</h3>
<h2 class="sub-score">54
</h2>
</div>
<div class="col-lg-2 col-sm-3">
<h3 class="category">Security</h3>
<h2 class="sub-score">46
</h2>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</body>
</html>
Ответ №3:
Вы могли бы использовать text-align: center;
на <h2>
и <h3>
для центрирования текста.
Ответ №4:
вы можете использовать text-center
класс bootstrap для выравнивания ваших элементов по центру
Пример jsfiddle
Ответ №5:
HTML-таблицы отлично подходят для этой цели:
<table>
<tr>
<th><h3 class="category">Sugar Level</h3></th>
<th><h3 class="category">Hemoglobin Level</h3></th>
<th><h3 class="category">Water</h3></th>
<th><h3 class="category">Blood Pressure</h3></th>
<th><h3 class="category">Security</h3></th>
</tr>
<tr>
<td><h2 class="sub-score">46</h2></td>
<td><h2 class="sub-score">82</h2></td>
<td><h2 class="sub-score">46</h2></td>
<td><h2 class="sub-score">54</h2></td>
<td><h2 class="sub-score">46</h2></td>
</tr>
</table>
Затем вы можете использовать CSS для оформления отступов и полей таблицы так, как вам нравится. Это будет согласовано со всеми ячейками.
Обратите внимание, что использование H2
и H3
таким образом не «оптимизировано для SEO», возможно, вам захочется поместить этот текст внутри интервала или чего-то подобного. Но это нормально, если вы просто тестируете.
Комментарии:
1. У него есть адаптивное дерево. Идея таблицы приятная, но не отзывчивая.
2. с таблицей вы также можете превратить td в th и удалить теги hx, которые становятся бесполезными на этом этапе, когда макет таблицы описывает и связывает структуру и содержимое 😉