Jump to content
  • 0

Блок внутри inline-block


Launder
 Share

Question

http://jsfiddle.net/Launder/38femeh7/2/

<ul class="menu">	<li><a href="#">Русская кухня</a>	    <ul>		<li><a href="#">Филе рябчика фаршированное в сухарях </a></li>		<li><a href="#">Заливной пирог с картофелем и белыми грибами</a></li>		<li><a href="#">Щи суточные с расстегайчиками</a></li>            </ul>	</li>	<li><a href="#">Украинская кухня</a>	    <ul>		<li><a href="#">Борщ украинский с пампушками</a></li>		<li><a href="#">Вареники с печенью в луке с салом</a></li>		<li><a href="#">Курица, тушенная с галушками</a></li>	    </ul>	</li>	<li><a href="#">Немецкая кухня</a>            <ul>		<li><a href="#">Гусь по-берлински</a></li>		<li><a href="#">Пирог яблочный с грецкими орехами</a></li>		<li><a href="#">Cвиные отбивные под лимонно-соевым соусом</a></li>	    </ul>	</li></ul>
.menu 	        {			background: -moz-linear-gradient(to top, #ecc, #fff8f8);			background: -webkit-linear-gradient(to top, #ecc, #fff8f8);			background: -o-linear-gradient(to top, #ecc, #fff8f8);			background: -ms-linear-gradient(to top, #ecc, #fff8f8);			background: linear-gradient(to top, #ecc, #fff8f8);			border: 1px solid #888; 			border-top: 0;			padding: 0; margin: 0;			font-family: Arial, Helvetica, sans-serif; 			font-size: 0;		}.menu > li		{			display: inline-block;			border: 1px solid #fff;			-moz-box-sizing: border-box;			-webkit-box-sizing: border-box;			box-sizing: border-box;			font-size: 14px;		}.menu a		{			text-decoration: none;                        display: block;		}.menu ul		{			list-style: none;		}

Почему когда ставишь .menu a  {display: block}, а, как блочный элемент, с не заданной шириной, не растягивает li, который является inline-блоком и, по-идее, его размеры должны определяться размерами внутренних элементов?

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

С учётом того, что li у нас inline-block разве его размер не должен зависеть как раз от размера вложенных блоков? а с учётом того, что блок, по умолчанию, занимает всю доступную ширину, разве не должен он растягивать весь элемент?

Link to comment
Share on other sites

  • 0

Вот когда внутри блочного элемента будет достаточно контента, чтобы растянуть li, тогда он и растянется.

 

Блочный элемент занимает всю доступную ширину родителя, а какая у родителя ширина может быть, если контента нет?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By SnowSilver
      Почему line-height на высоту inline элемента не влияет, а на inline-block влияет ?
      Например изначально, при дефолтном размере шрифта в 16px, высота строки в хроме показывает 18.18px. И если применим line-height: 1; - то высота не изменится.
      А если мы превратим строчный элемент в inline-block, тогда высота уменьшается до 15.45px - и тогда высота строки равняется почти размеру шрифта. Хотя line-height: 1 это множитель шрифта, по идеи в моем понимание высота должна равняться 16px, а не 15.45.
      Эти значения получены у не стандартного шрифта... Но это сути не меняет.
      Небольшая заготовка - https://codepen.io/anon/pen/Qxpgoe. Правда там у строчного  элемента изначально 17px , а у инлайн блока после установки line-height:1 -  16px.
       
       
       
    • By SnowSilver
      При дефолтном шрифте в 16 px, между блоками inline-block 4px отступа.


      Имеем такую верстку: 
      Результат в хром версии 61: 


      Отступа между псевдоэлементов before - inline-block который у нас в ширину в 1px и и первым блоком нету, но отступ должен быть!
      но если в хроме, в панели разработчиков, в DOM, у псевдоэлемента before выключить display: inline-block и включить, то станет нормально отображаться, попробуйте) 
      пример: 
       


      а вдругих браузерах сразу корректно отобразится
       
      что думаете на сей счет ?
       
      такой косяк с отступом проявляется только с псевдоэлементом inline-block и только в хром с большущим подозрением именно 61 версией...
    • By toliboff
      Внутри блока с фиксированной шириной и высотой должны располагаться четыре блока в один ряд. Между ними не должно быть пустое пространство. (margin:0; padding:0; не помогло). Почему блок с классом 'col-4-2' позиционируется относительно нижней границы текста блока с классом 'col-4-1'? Что я делаю неправильно.
      Вот ссылка на файл: https://jsfiddle.net/ttoliboff/81oL39y3/
    • By Goodman-77
      Здравствуйте! 

      Помогите пожалуйста, разобраться.
      Известно, чтобы убрать пробелы между элементами - display: inline-block;
      Достаточно обнулить у всех элементов *font-size: 0;
      Но возникает вопрос - как в этом случае задать относительный шрифт (em, rem, %) внутри элементов inline-block, если font-size обнулен на глобальном уровне? 

      Получается верстка с помощью свойства display не подходит для резиновых шрифтов или всё-таки есть какие-то способы? 
    • By whiteworking
      Добрый день, такая проблема:
      устроился на стажировку в веб студию, сразу дали решить/устранить проблему в их уже существующем проекте. 
      - сайт: http://en.uff.fr
      - суть проблемы: на главной странице внизу, в диве с классом container, расположены на черном фоне логотипы продуктов(svg картинки). Реализовано всё через display:flex.
       Во всех браузерах отображение правильное кроме safari. Там поведение картинок такое что у них разные размеры и они как-бы *в куче*. Я гуглил эту проблему на англоязычных источниках и единственным советом был просто префикс -webkit-, но это уже учтено и всё равно правильного отображения мы не добились. Есть какой-то способ решить эту проблему? Заранее спасибо.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy