Как идеально выровнять текст по центру с кавычками

Свойство выравнивания по центру не учитывает двойные кавычки при выравнивании текста, поэтому выравнивание текста по центру с кавычками выглядит не очень хорошо. Он выключен, потому что кавычки совпадают. Человеческий глаз фокусируется на самом тексте. Поэтому этот текст должен быть выровнен, а кавычки должны быть слева и справа от этого текста.

Текст динамичен по содержанию и размеру. Могу ли я как-нибудь сделать так, чтобы это выглядело хорошо? Он должен работать в Chrome.

Я попробовал использовать селектор CSS hanging-punctuation: first last, но это не решает проблему. Я тоже пробовал text-indent: -3em, но это не решение для центрированного текста.

#container {
  width: 400px;
  height: 300px;
  font-family: Arial;
  background: lightblue;
}

#container>div {
  margin-top: 40px;
  text-align: center;
  font-size: 30px;
}

#container>div:first-child {
  color: green;
}

#container>div:last-child {
  color: red;
}
<div id = "container">
  <div>
    This alignment<br>looks good to the eye
  </div>
  <div>
    "This alignment does<br>not look so good to the eye"
  </div>
</div>

Можно ли более (любой?) уточнить, что значит «хорошо выглядеть»?

Scott Hunter 05.06.2024 16:11

«Свойство выравнивания по центру не учитывает двойные кавычки при выравнивании текста» Хм… да, учитывает.

Paulie_D 05.06.2024 16:13

Да. Хорошая точка зрения. Выравнивание по центру отключено, поскольку кавычки находятся по выравниванию. Человеческий глаз фокусируется на самом тексте. Поэтому этот текст должен быть выровнен, а кавычки должны быть слева и справа от этого текста.

Philip 05.06.2024 16:15

Вы можете использовать элементы с абсолютным позиционированием для кавычек. Или примените отрицательный запас в 1 символ -> margin-left: -1ch;

Reyno 05.06.2024 16:16

@Paulie_D Тогда я имею в виду, что при выравнивании не следует учитывать двойные кавычки. Виноват. Извини.

Philip 05.06.2024 16:16
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
5
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать псевдоэлементы до и после для создания кавычек.

При абсолютном расположении их ширина не будет учитываться при расчетах выравнивания.

#container {
  width: 400px;
  height: 300px;
  font-family: Arial;
  background: lightblue;
}

#container>div {
  margin-top: 40px;
  text-align: center;
  font-size: 30px;
}

#container>div:first-child {
  color: green;
}

#container>div:last-child {
  color: red;
  position: relative;
}

#container>div:first-child::before {
  content: '"';
  position: absolute;
  transform: translateX(-100%);
}

#container>div:first-child::after {
  content: '"';
  position: absolute;
}
<div id = "container">
  <div>
    This alignment<br>looks good to the eye
  </div>
  <div>
    This alignment<br>looks good to the eye
  </div>
  <div>
    "This alignment does<br>not look so good to the eye"
  </div>
</div>

Большое вам спасибо, вы на самом деле тот, кто понимает мою проблему/вопрос и не голосует против моего вопроса. И у вас есть идеальное решение. Спасибо!!

Philip 05.06.2024 18:51

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