Html горизонтальный список: Как разместить элементы списка горизонтально?

css — Горизонтальный список с вертикальными элементами HTML

Задать вопрос

Вопрос задан

Изменён 2 года 4 месяца назад

Просмотрен 251 раз

Есть горизонтальный список, где каждый элемент — просто текст и он работает хорошо

ul.hr {
  margin: 0;
  /* Обнуляем значение отступов */
  padding: 4px;
  /* Значение полей */
}
ul.hr li {
  display: inline;
  /* Отображать как строчный элемент */
  margin-right: 5px;
  /* Отступ слева */
  border: 1px solid #000;
  /* Рамка вокруг текста */
  padding: 3px;
  /* Поля вокруг текста */
}
<ul>
  <li>Мчади</li>
  <li>Када на мацони</li>
  <li>Пахлава</li>
  <li>Кчуч</li>
  <li>Лилибдж</li>
</ul>

Вывод такой:

   Мчади  Када на мацони  Пахлава  Кчуч Лилибдж

Но стоит мне попытаться сделать часть элементов более сложными, например вот так

ul. hr {
  margin: 0;
  /* Обнуляем значение отступов */
  padding: 4px;
  /* Значение полей */
}
ul.hr li {
  display: inline;
  /* Отображать как строчный элемент */
  margin-right: 5px;
  /* Отступ слева */
  border: 1px solid #000;
  /* Рамка вокруг текста */
  padding: 3px;
  /* Поля вокруг текста */
}
<ul>
    <li>
        Первая строчка
        <br />
        Вторая строчка
        <br />
        Третья строчка
    </li>
    <li>Када на мацони</li>
    <li>Пахлава</li>
    <li>
        Первая строчка
        <br />
        Вторая строчка
        <br />
        Третья строчка
    </li>
    <li>Лилибдж</li>
</ul>

Как все после

<br /> уезжает на новую строчку. С <p> история аналогичная.

Как мне таким образом создать список, который будет выглядеть вот так?

Первая строчка                                            Первая строчка
Вторая строчка                                            Вторая строчка
Третья строчка       Када на мацони       Пахлава         Третья строчка          Лилибдж
  • html
  • css
ul. hr {
  list-style: none;
  display: flex;
  align-items: flex-end;
  margin: 0;
  padding: 4px;
}
ul.top {
    align-items: flex-start;
}
ul.hr li {
  margin-right: 5px;
  border: 1px solid #000;
  padding: 3px;
}
<ul>
    <li>
        Первая строчка
        <br />
        Вторая строчка
        <br />
        Третья строчка
    </li>
    <li>Када на мацони</li>
    <li>Пахлава</li>
    <li>
        Первая строчка
        <br />
        Вторая строчка
        <br />
        Третья строчка
    </li>
    <li>Лилибдж</li>
</ul>
<hr>
<ul>
<li>
    Первая строчка
    <br />
    Вторая строчка
    <br />
    Третья строчка
</li>
<li>Када на мацони</li>
<li>Пахлава</li>
<li>
    Первая строчка
    <br />
    Вторая строчка
    <br />
    Третья строчка
</li>
<li>Лилибдж</li>
</ul>

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

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

html — Горизонтальный ul список с заполнением всего ряда, как правильно?

Задать вопрос

Вопрос задан

Изменён 4 года 4 месяца назад

Просмотрен 61 раз

Имеется горизонтальный ul список, заданный через flex. Как грамотно указать li, чтобы они заполняли все горизонтальное пространство?

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
}

ul {
  list-style-type: none;
  -webkit-margin-before: 0;
  -webkit-margin-after: 0;
  -webkit-margin-start: 0;
  -webkit-margin-end: 0;
  -webkit-padding-start: 0;
}

.list {
  display: flex;
  background: #ffd3d4;
}

.item {
  display: block;
  padding: 10px 20px;
  background: #f5c6ff;
}
<ul>
  <li>Главная</li>
  <li>Услуги</li>
  <li>Информация</li>
  <li>Новости</li>
  <li>Контакты</li>
</ul>
  • html
  • css
  • flexbox

Нужно добавить подходящее для этого свойство flex-grow:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
}

. list {
  list-style-type: none;
  display: flex;
  background: #ffd3d4;
}

.item {
  padding: 10px 20px;
  background: #f5c6ff;
  flex-grow: 1;
}
<ul>
  <li>Главная</li>
  <li>Услуги</li>
  <li>Информация</li>
  <li>Новости</li>
  <li>Контакты</li>
</ul>

5

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

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

Как сделать так, чтобы список HTML отображался горизонтально, а не вертикально, используя только CSS?

Задавать вопрос

спросил

Изменено 1 год, 5 месяцев назад

Просмотрено 174 тыс. раз

Мне это нужно, потому что я хочу, чтобы меню (созданное из HTML-списка) отображалось горизонтально.

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

Я также хотел бы убрать отступы подсписков. Является ли это возможным?

  • html
  • css
  • меню
  • позиционирование
  • horizontallist

Вам придется использовать что-то вроде ниже

 #меню ул{
  стиль списка: нет;
}
#меню ли{
  дисплей: встроенный;
}
 <дел>
  <ул>
    
  • Первый пункт меню
  • Второй пункт меню
  • Третий пункт меню
  • 3

    Использование дисплея : inline-flex

     #menu ul {
      стиль списка: нет;
      маржа: 0;
      заполнение: 0;
      дисплей: встроенный гибкий
    } 
     <дел>
      <ул>
        
  • 1 пункт меню
  • 2 пункт меню
  • 3 пункта меню
  • Использование дисплея : встроенный блок

     #menu ul {
      стиль списка: нет;
      маржа: 0;
      заполнение: 0;
    }
    
    #меню ли {
      отображение: встроенный блок;
    } 
     <дел>
      <ул>
        
  • 1 пункт меню
  • 2 пункт меню
  • 3 пункта меню
  • довольно просто:

     ul. yourlist li { float:left; }
     

    или

     ul.yourlist li { display:inline; }
     

    0

    Вы можете напрямую использовать встроенный стиль примерно так:

     
    • А
    • Б
    • С
    • Д

    Зарегистрируйтесь или войдите в систему

    Зарегистрируйтесь с помощью Google

    Зарегистрироваться через Facebook

    Зарегистрируйтесь, используя адрес электронной почты и пароль

    Опубликовать как гость

    Электронная почта

    Требуется, но не отображается

    Опубликовать как гость

    Электронная почта

    Требуется, но не отображается

    html — Элементы горизонтального списка

    спросил

    Изменено 10 месяцев назад

    Просмотрено 224 тыс. раз

    Итак, я попытался создать горизонтальный список для использования на новом веб-сайте, который я разрабатываю. Я попробовал ряд предложений, уже найденных в Интернете, таких как установка «плавающего» влево и т. Д., Но ни одно из них не сработало, когда дело доходит до решения проблемы.

     ul#элементы меню {
          фон: нет;
          высота: 50 пикселей;
          ширина: 100 пикселей;
          маржа: 0;
          заполнение: 0;
        }
        ul#элементы меню li {
          дисплей: встроенный;
          стиль списка: нет;
          поле слева: авто;
          поле справа: авто;
          верх: 0px;
          высота: 50 пикселей;
        }
        ul#menuItems li a {
          семейство шрифтов: Arial, Helvetica, без засечек;
          текстовое оформление: нет;
          вес шрифта: жирнее;
          цвет: #000;
          высота: 50 пикселей;
          ширина: авто;
          дисплей: блок;
          выравнивание текста: по центру;
          высота строки: 50px;
        } 
     <ул>
      
  • Главная
  • php">Профили ди-джеев
  • В настоящее время я не уверен, что вызывает эту проблему, как мне ее решить?

    • HTML
    • CSS

    1

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

     ул > ли {
        отображение: встроенный блок;
        /* Вы также можете добавить здесь немного полей, чтобы это выглядело красивее */
    } 
     <ул>
        
  • какой-то элемент
  • другой элемент
  • 6

    Я думаю, что простое решение, которое я нашел, ниже

     ul{
        дисплей: гибкий;
    }
     

    2

    Эта скрипта показывает, как

    http://jsfiddle.net/9th7X/

     ul, li {
        дисплей: встроенный
    }
     

    Отличные ссылки на списки и css здесь:

    http://alistapart. com/article/taminglists/

    4

    Гораздо лучше использовать inline-block , потому что вам больше не нужно использовать clear:both в конце вашего списка.

    Попробуйте это:

     
     

    CSS:

     ул > ли {
        дисплей: встроенный блок;
    }
     

    Взгляните на это здесь: http://jsfiddle.net/shahverdy/4N6Ap/

    Вы также можете использовать встроенные блоки, чтобы избежать плавающих элементов

     
     

    , а затем стиль:

     li{
        /* с исправлением для IE */
        дисплей: встроенный;
        дисплей: встроенный блок;
        масштаб: 1;
        /*
        дополнительные стили, чтобы это выглядело красиво
        */
     }
     

    таким образом вам не нужно будет ничего плавать, устраняя необходимость в очистке

    2

    Здесь вы можете найти рабочий пример с некоторыми дополнительными предложениями по динамическому изменению размера списка.