Jump to content
  • 0

Сдвиг в списке меню


Launder
 Share

Question

Добрый день!

 

Вот небольшая менюшечка:

 

http://cssdeck.com/labs/bgmx27f7

 

Почему когда тег li закрыт, то следующий пункт съезжает немного вправо и между пунктами появляется полоса?

Спасибо!

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0
<!DOCTYPE HTML><HTML>	<HEAD>		<TITLE>Цифровая Сервисная Станция</TITLE>		<meta charset="utf-8">		<link rel="stylesheet" href="shift.css">	</HEAD>  <BODY>	<ul class="menu">		<li><a href="#">Общие положения</a></li>		<li><a href="OS.html">Операционные системы</a></li> 		<li><a href="software.html">Программы</a>		<li><a href="computer.html">Компьютеры</a></li>		<li><a href="mobile-comp.html">Ноутбуки и моноблоки</a></li>		<li><a href="hardware.html">Аппаратный ремонт</a></li>		<li><a href="#">Портативная техника</a></li>	</ul>  </BODY></HTML>
.menu 	{			background: #faf;			border: 1px solid #c8c8c8; 			border-top: 0;			padding: 0; margin: 0;			font: 14px Arial, Helvetica, sans-serif; 			border-radius: 0 0 5px 5px;			box-shadow: 0 3px 5px rgba(180,180,220,0.2);			list-style: none;		}.menu > li		{			display: inline-block; 			border: 1px solid #0ff;			padding: 0; margin: 0;		}.menu > li > a 		{			color: #3c3c3c;			border: 1px solid #aeae00;			padding: 10px 15px;				text-decoration: none;			display: block;							background: #dcfafa;		}

Там специально в двух местах тег li не закрыт, чтобы показать эффект.

Edited by Launder
Link to comment
Share on other sites

  • 0

Ааа, ну так всё же элементарно!

Дело в том, что браузер автоматически закрывает li, когда доходит до следующего. Но перевод строки он не вставляет. То есть этот код:

<ul class="menu">	<li><a href="#">Общие положения</a>	<li><a href="OS.html">Операционные системы</a></li> </ul>

Эквивалентен этому:

<ul class="menu">	<li><a href="#">Общие положения</a></li><li><a href="OS.html">Операционные системы</a></li> </ul>

Или этому:

<ul class="menu">	<li><a href="#">Общие положения</a></li><!--	--><li><a href="OS.html">Операционные системы</a></li> </ul>
  • Like 1
Link to comment
Share on other sites

  • 0

Как интересно! А ведь и правда! И ведь не нашёл это в справочнике... Как же убрать этот перенос грамотно? Так, как у Вас указано в третьем варианте или есть какие-то более красивые решения? И где вообще почитать про то какие эффекты могут быть от него в коде?

Спасибо!

Link to comment
Share on other sites

  • 0

Спасибо Вам огромное! Вы мне ОЧЕНЬ помогли. Статья превосходная, подробно и ясно изложено, чувствуется что автор старался донести свою мысль, что приятно.

Но всё же вывод в статье, что лучше не закрывать, наверное, подходит для простого меню, как в приведённом мной примере.

Если же предположить что нам нужно ещё ниспадающее меню, вида:

<ul>   <li>заглавие пункта меню      <ul> /*раскрывающийся список*/          <li>пункт 1          <li>пункт 2          <li>пункт 3       </ul> /*</li> возможный закрывающий тег*/   <li>далее аналогично

то можно ли считать, что вариант с отсутствием закрывающего тега приемлим и хорош? может лучше сделать так, как Вы предложили в третьем примере - откомментировать перенос строк?

Edited by Launder
Link to comment
Share on other sites

  • 0
то можно ли считать, что вариант с отсутствием закрывающего тега приемлим и хорош? может лучше сделать так, как Вы предложили в третьем примере - откомментировать перенос строк?

Второй вариант, конечно, лучше. Ну или так.

Link to comment
Share on other sites

  • 0

Вариант с изменением шрифтов, конечно, по-своему, красивый, но он же не работает в Safari. А делать из ul -> table как-то не хочется...

И что? Он не работает в старом Сафари под Windows, которым никто не пользуются, и который заброшен самим Яблоко. А в Сафари под Мак ОС Х, я уверен, всё нормально.

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 Bourdun
      Не знаю как это объяснить, смотрите на скриншоты. Как решить эту проблему?
       


    • By leShik
      Попросили добавить текста немного на сайт. Добавил блок со списком, отображение вот такое

      Какие стили отвечают за такое отображение?
      Его стили на данном этапе))
      div style="position: relative; clear: both;"
      "position: absolute; clear: both; z-index: 1000;" - отображает вот так

      почему "type" для ul не отрисовывает маркеры?
      Вроде на дримвивере написан, хотя хз))
    • By Curt54rus
      Есть страничка по адресу http://sale.srfhm.ru/css_bug/
      В ней есть табличка сделанная на UL LI тегах, и вот в ячейке Описание, где выводится описание для типа питания не влезает весь текст и остальную часть не видно, скрывается стилем - overflow: hidden
       
      Пробовал убрать этот overflow, тогда вообще таблица вся разъезжается... 
       
      В верстке не особо силен, подскажите пожалуйста где поправить что, чтобы текст нормально влез и весь отображался... Пробовал уже по всякому, всю голову сломал!
       
      Заранее огромное Спасибо!
    • By Mewow
      Привет всем, делал менюшку на сайте и столкнулся с одной проблемой
      Есть тег div, в нем ul и 5 li в строчку с помощью inline-block
      li должны быть равными по ширине и при том менять её в зависимости от ширины экрана
      на ум пришла только эта идея:
      Поскольку div = 100%  для li я поставил 20% и, как я понимаю, li должны вплотную занять всю ширину div и при том быть не статичными тк %
      но не получается и последняя пятая переходит на новую строчку, когда ставлю 19% то всё влазит, но справа остаётся место и получается не красиво
      в чем дело? Никаких отступов нет, padding 0, что еще занимает место? Или способ не правильный?
      так же думал, что это из за пробелов между блоками,пробовал добавить float: left при этом пробелы между блоками убирались, но при 20% всё равно не влазиют
      сейчас стоит на 19.453% и ,в принципе, все, на вид, вплотную, но это же совсем извращение  как мне кажется и мне всё же интересно почему мой первый вариант не работает
       


    • By VjikZel
      Здравствуйте, в верстке я новичок, поэтому не судите строго за вопрос.
      Сейчас я работаю над сайтом на WP. Мне нужно задать размер шрифта для всех элементов UL на страницах сайта. Как это лучше сделать?
×
×
  • 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