HTML не упаковывается должным образом

Я знаю, что это простой. У меня есть кнопка:

<a class = "btn btn-choice rectangle" (click) = "setQuestion(question, !question.active, $event)" [ngClass] = "{ 'active': question.active }"
  href = "#">
  <span class = "fa fa-square"></span>
  <span class = "fa fa-check-square"></span>
  <span class = "title">{{ question.description }}</span>
</a>

Классы fa скрыты в зависимости от состояния кнопки (я использую bootstrap btw). CSS для этого выглядит так:

.btn-choice {
    @include make-text-sizes($h1-sizes);
    font-weight: 300 !important;
    color: white !important;
    background-color: $midnight;
    display: block;
    margin-bottom: 30px;
    text-align: left;

    .header {
        padding: 0.375rem 0.75rem;
    }

    .title {
        padding-right: 40px;
        display: block;
    }

    .fa {
        float: right;
        display: none;
        margin-top: 7px; // Center vertically?
    }

    &:hover,
    &:focus {
        font-weight: 400 !important;
        background-color: $cyan;
        .fa-square {
            display: block;
        }
    }

    &:active,
    &.active {
        font-weight: 400 !important;
        background-color: $cyan;
        .fa-check-square {
            display: block;
        }
        .fa-square {
            display: none;
        }
    }
}

Теперь я пытаюсь сделать так, чтобы заголовок имел некоторый отступ, чтобы он никогда не перекрывал «квадратные флажки», но я не могу заставить его работать. Как видите, .title настроен как блок, и я установил некоторые отступы справа. Если я исследую свой элемент, я вижу, что этот контур находится внутри ссылки, но текст просто продолжается по ней.

Вот код проблемы:

https://codepen.io/r3plica/pen/LJZQqb

Возможно, стоит добавить тег для любого препроцессора CSS, который вы используете, поскольку это проблема стиля.

DBS 28.08.2018 14:36
Улучшение производительности загрузки с помощью 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
1
48
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

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

Я знал, что это будет просто; Кажется, я могу просто добавить white-space: pre-wrap; к .title, и это устранило мою проблему.

См. Ответ выше?

user7779924 28.08.2018 14:35

Затем выберите любой из ответов в качестве решения, которое включает эту конкретную информацию.

Domenik Reitzner 29.08.2018 08:29

Звучит хорошо, но я не могу принять собственное решение в течение 2 дней после его публикации :)

r3plica 29.08.2018 11:52

Думаю, у меня есть решение -

Основные изменения -

.btn-choice {
   padding: 20px 30px;
}

.title {
  display: block;
  width: 90%;
  white-space: initial;
}

https://codepen.io/DarianSteyn/pen/eLzMzp

Это решение, но мое не требует установки ширины, поэтому нет проблем с изменением размера окна. Я бы предположил, что мое решение лучше по этой причине.

r3plica 28.08.2018 15:03

Пожалуйста, проверьте ответ ниже, который я добавил. Ширина не требуется.

Charu Maheshwari 30.08.2018 07:16

Я адаптировал ваш пример и использовал flexbox, а также, как уже упоминалось, перезаписал white-space из стандарта начальной загрузки.

См. Разветвленный код: https://codepen.io/dreitzner/pen/bxevvP

это ничего не делает: o

r3plica 28.08.2018 15:02

Извините, я не сохранил последний прогресс. Пожалуйста, проверьте еще раз. Заголовок завершается и имеет отступ справа.

Domenik Reitzner 28.08.2018 15:04

Я обновил код для вас. https://codepen.io/charumaheshwari/pen/NLrMXb. Идея состоит в том, чтобы дать padding-right: 40px для "title"

.title {
    display: block;
    padding-right:40px;
    white-space: initial;
  }

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