Ошибка правого поля в сетке Bootstrap

Я занимаюсь дизайном веб-страницы с помощью Bootstrap. Я разместил абсолютный <div> (прозрачное наложение текста) на изображении, которое закодировал так, чтобы он реагировал в рамках структуры столбцов Bootstrap. Мой текстовый оверлей в абсолютном <div> выровнен с изображением на левом поле, но выходит за правое поле (т. Е. Не помещается в заданные столбцы Bootstrap справа). Любые предложения о том, как я могу получить правую границу прозрачного текстового наложения для выравнивания в рамках структуры столбца, чтобы она реагировала с изображением?

См. https://cgriffith5.github.io/research.html

HTML:

<div class = "container-fluid">
    <div class = "row">  
        <div class = "col-md-5 container">    
        <img src = "assets/img.jpg" class = "img-rounded" style = "width:100%"> 
        <div class = "overlay">Text</div>   
        </div>

CSS:

.container {
    position: relative; 
    max-width: 410px; /* Maximum width */
    margin: 0 auto; /* Center it */
}

.overlay {
    position: absolute; /* Position the background text */
    overflow: hidden;
    bottom: 0; /* At the bottom. Use top:0 to append it to the top */
    background: rgba(0, 0, 0, 0.5); /* Black background with 0.5 opacity */
    color: #f1f1f1; /* Grey text */
    width: 100%; /* Full width */
    padding: 15px; /* Some padding */
}`
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в 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. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
0
429
2

Ответы 2

Сделайте свой HTML-код следующим образом:

<div class = "row">  
    <div class = "col-md-5 container">
      <div style = "position: relative"> <!-- Make a div and give it a position of relative -->
         <img src = "assets/img.jpg" class = "img-rounded" style = "width:100%"> 
         <p class = "overlay">Text</p>
      </div>
    </div>
</div>

Мы оборачиваем весь div, содержащий img и оверлей, как относительную позицию и внутри, что делает наложение с положением absolute.

Глядя на страницу, которую вы разместили в https://cgriffith5.github.io/research.html, одно из решений - изменить ширину div .overlay со 100% на

.overlay {  
...  
width: calc(100% - 30px);  
...  
}

Заполнение Bootstrap по умолчанию для столбца составляет 15 пикселей слева и справа, поэтому уменьшение значения with of .overlay на 15 пикселей + 15 пикселей компенсирует это и делает ширину такой же, как у изображения.

Вот живая демонстрация: https://codepen.io/panchroma/pen/pLQRja

Надеюсь это поможет!

Это прекрасно сработало! Большое спасибо, очень благодарен за решение.

cgriffith5 07.04.2018 14:34

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