2016-03-02 2 views
2

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

Так как большая часть изображения логотипа - это всего лишь градиент фона, я бы хотел поместить номер телефона поверх элемента логотипа, когда экран уже, чем 818 пикселей.

Как я могу это сделать?

Вот основной код:

<div id="head-wrap"> 
    <a class="home-link" href="http://example.com"> 
     <img src="logo.png" class="logo"> 
    </a> 
    <div class="tel"> 
     <a href="tel:555555555" class="phone"> 
      <p class="phone"> 
       <img src="phone-icon.png">555 555 555 
      </p> 
     </a> 
    </div> 
</div> 
.home-link { 
    float:left; 
} 
.tel { 
    float: right; 
} 
.logo { 
    width: 657px; 
} 
+0

использование медиа запросов – RRR

+0

Да, я знаю, что много. Не могли бы вы помочь мне с кодом? –

ответ

0

Прежде всего, вы можете решить часть вашей проблемы, поставив div.tel перед вашим логотипом. Таким образом, он будет отображаться поверх логотипа, если у вас недостаточно места. Затем вы можете использовать медиа-запрос, чтобы поместить номер телефона на левом, например, так:

@media screen and (max-width: 818px) { 
    .tel { 
    float: left; 
    } 
} 

Fiddle: https://jsfiddle.net/s2Lubqqp/1/

+0

Пробовал, но это полностью нарушает мое навигационное меню под 'div.headwrap'. –

0

Поскольку вы должны перекрываться телефон на логотип Вы должны держать свою позицию абсолютной и то же позиция

также, так как вы установили ширину логотипа для ширины: 657px; Лучше сделать это авто при изменении размеров окна ... надеюсь, что это работает для вас

здесь запрос СМИ :)

@media screen and (max-width: 818px) { 
    .tel { 
    width:auto; 
    position:absolute; 
    left:5px; 
    top:5px; 

} 
.logo { 
    width: auto; 
    position:absolute; 
    left:5px; 
    top:5px; 
} 
} 
+0

Хотя это и помещает номер телефона поверх логотипа, он также останавливает номер телефона с плавающей правой стороны. Кроме того, что именно вы пытаетесь выполнить с помощью 'left: 5px;' и 'top: 5px;'? –

+0

@ JeppeBech просто пытается дать верхнюю часть поля 5px и оставить это, если вы не хотите, чтобы вы могли установить его на 0 – RRR

+0

Ну, положив '.tel {right: 5px; } 'вместо этого работал. –

0

Вы могли бы попробовать что-то вроде этого:

.home-link { 
    float:left; 
} 
.tel { 
    float: right; 
} 
.logo { 
    width: 657px; 
} 

@media only screen and (max-width: 818px) { 
    .home-link { 
    width: 30%; 
    max-width: 300px; 
    } 
    .logo { 
    width: 100%; 
    } 
} 

Это вы можете изменить процентную ширину раздела домашней ссылки и заставить логотип соответствовать ему с «width: 100%;»

The fiddle is here

+0

Это просто делает логотип меньше. –

+0

Верно, я думаю, что подход к проблеме не совсем прав. Логотип не должен содержать градиент, но должен быть png, а фон должен быть градиентом, поэтому логотип может адаптировать свою ширину без необходимости перекрываться на узком экране. Но абсолютное позиционирование - это ваш ответ на ваш вопрос. –

Смежные вопросы