Как расположить дочерние элементы относительно родительского в CSS?

#html #css

#HTML #css

Вопрос:

Я использую HTML 5 с CSS 3. Сценарий выглядит следующим образом.

 <div style="margin-top: 50px; background-color: red; padding: 10px 0px 10px 0px; width: 100%">
<span>This text must be in center of div</span>
<a href="somepage.html"><img src="/image.jpg" alt="This image must be on left side of div"/></a>
</div>
  

Текст и изображение должны быть в одну строку. Как мне это сделать?

Ответ №1:

Пример

Пример

Чтобы расположить элемент относительно его родительского элемента, вы присваиваете родительскому элементу любое значение position, кроме static (обычно relative ) и дочернего элемента position: absolute .

В соответствии с вашим встроенным CSS…

 <div style="margin-top: 50px; background-color: red; padding: 10px 0px 10px 0px; width: 100%; text-align: center; position: relative;">
    This text must be in center of div
    <img src="/image.jpg" alt="This image must be on left side of div" style="position: absolute; left: 0;"/>
</div>
  

jsFiddle.

Однако вам следует рассмотреть возможность использования классов, идентификаторов и внешней таблицы стилей.

Ответ №2:

SPAN и IMG являются встроенными элементами, поэтому по умолчанию они должны отображаться рядом друг с другом. Если вы хотите, чтобы изображение отображалось слева, а текст SPAN после него…

 <img /><span />
  

Комментарии:

1. Проблема возникает при центральном и левом расположении

Ответ №3:

Как насчет этого? Я отредактировал код на основе вашего комментария. Предостережение заключается в том, что высота строки тега P должна быть установлена на высоту div, чтобы расположить P по центру как по вертикали, так и по горизонтали.

     <style>
.myDiv{
    background-image: url('../pathToImage/image.jpg');
    background-repeat: no-repeat;
    background-position: center left;   
    margin-top: 50px; 
    background-color: red; 
    width: 100%;
    text-align: center;
    height: 250px;
}
.myDiv P
{
    line-height:250px;

}
</style>
<div class="myDiv">
        <p>This text must be in center of div.</p>
</div>
  

Комментарии:

1. Спасибо, и ваше, и решение Алекса, похоже, работают. Поскольку Алекс ответил ранее. Я приму его ответ и отмечу ваш как полезный.

2. Я обновил свое решение, потому что текст не был центрирован по вертикали, а также по горизонтали.