Как расположить текст по центру относительно другого текста с помощью css?

#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, которые становятся бесполезными на этом этапе, когда макет таблицы описывает и связывает структуру и содержимое 😉