Що таке стилі списку за замовчуванням (CSS)?


90

На своєму веб-сайті я використовую reset.css. Це додає саме це до стилів списку:

ol, ul {
    list-style: none outside none;
}
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
    background: none repeat scroll 0 0 transparent;
    border: 0 none;
    font-size: 100%;
    margin: 0;
    outline: 0 none;
    padding: 0;
    vertical-align: baseline;
}

Проблема в тому, що для цього встановлено всі стилі списків NONE. Я хочу повернути оригінальні стилі списку (за замовчуванням) лише для всіх списків на підсторінках веб-сайту (усі списки в .my_container).

Коли я намагаюся настройки речі , як list-style-typeна inheritце не буде наслідувати стилі по замовчуванням у браузері тільки для цього CSS властивості.

Чи є спосіб успадкувати оригінальні стилі браузера для певних властивостей без зміни reset.css?


4
reset.css - один з найгірших анти-шаблонів у веб-дизайні.
ᆼ ᆺ ᆼ

9
Замість повного скидання таблиці стилів, розглянемо щось на зразок github.com/necolas/normalize.css, яке встановлює розумні значення за замовчуванням для всіх елементів. Таким чином, ви починаєте з базової лінії для всіх браузерів і можете будувати звідти. Крім того, вам не потрібно додавати додатковий код, щоб повернутися до налаштувань за замовчуванням!
Оллі Ходжсон

1
@OllyHodgson Так, але у мене є конкретні причини, чому я хочу використовувати reset.css. Мені потрібно насправді очистити якомога більше стилю, і я хочу переписати його - а не навпаки :)
Atadj

1
Якщо ви хочете їх стерти та переписати, який сенс у цьому питанні? Наскільки я бачу, у вас є два варіанти: 1) спеціально уникати скидання стилів списків, щоб зберегти за замовчуванням 2) скинути їх і створити власні стилі списку.
BoltClock

1
@BoltClock - Тільки для уточнення - я хочу надати користувачам можливість створити власний список з нуля (я додав клас для кожного можливого стилю) - мені було цікаво, чи є щось на зразок налаштування "за замовчуванням", але оскільки його немає стиль за замовчуванням - я просто створу його.
Atadj

Відповіді:


148

Раніше я встановлював цей CSS для видалення скидання:

ul { 
   list-style-type: disc; 
   list-style-position: inside; 
}
ol { 
   list-style-type: decimal; 
   list-style-position: inside; 
}
ul ul, ol ul { 
   list-style-type: circle; 
   list-style-position: inside; 
   margin-left: 15px; 
}
ol ol, ul ol { 
   list-style-type: lower-latin; 
   list-style-position: inside; 
   margin-left: 15px; 
}

EDIT: з певним класом, звичайно ...


Поки це працює як слід :) Думаю, це вирішує моє питання. Я збираюся перевірити це більше зараз із вкладеними списками тощо
Атадж

5
Він не “повертає назад оригінальні стилі списку (за замовчуванням)”. Він просто задає деякі стилі.
Jukka K. Korpela

Я згоден, але яким би не був шлях, метою було просто встановити якийсь стиль. Цей CSS надає досить базовий стиль спискам, не більше.
zessx

2
Для типу стилю списку не існує опції "за замовчуванням", і я дізнався, що після отримання відповідей. Браузери просто додають деякі стилі, які часто не узгоджуються між браузерами.
Atadj

1
У мене також хтось встановив дисплей: inline-block; і виявляється, що це повинен бути елемент списку, щоб кулі знову відображалися.
Позначте

32

Я думаю, це насправді те, що ви шукаєте:

.my_container ul
{
    list-style: initial;
    margin: initial;
    padding: 0 0 0 40px;
}

.my_container li
{
    display: list-item;
}

Так, я думаю, що ця відповідь теж щось важливе. inheritуспадковує стилі з батьківських контейнерів і не встановлює для них значення браузера за замовчуванням. initialце робить (я дізнався про його існування пізніше), але ви впевнені, що ul { list-style: initial; }і ol { list-style: initial; }дадуть дійсний результат? Чи не встановлюється list-styleпочаткове значення незалежно від елемента, до якого він застосований? Чи не буде initialзначення disc outside noneдля обох типів списків?
Atadj

1
Дивно, initialніколи мені в голову не прийшло!
BenjaminRH

8
initialне підтримується в жодній версії IE msdn.microsoft.com/en-us/library/…
lulalala

12

Згідно з документацією, більшість браузерів будуть відображатися <ul>, <ol>і <li>елементи з наступними значеннями по замовчуванню:

Налаштування CSS за замовчуванням для тегу UL або OL :

ul, ol { 
    display: block;
    list-style: disc outside none;
    margin: 1em 0;
    padding: 0 0 0 40px;
}
ol { 
    list-style-type: decimal;
}

Налаштування CSS за замовчуванням для тегу LI :

li { 
    display: list-item;
}

Стиль вкладених елементів списку також:

ul ul, ol ul {
    list-style-type: circle;
    margin-left: 15px; 
}
ol ol, ul ol { 
    list-style-type: lower-latin;
    margin-left: 15px; 
}

Примітка: Результат буде ідеальним, якщо ми використаємо вищезазначені стилі з класом. Також див. Різні маркери елементів списку .


Якби це було так, тоді вкладений список матиме верхнє та нижнє поля, додані з будь-яким новим рівнем.
VorganHaze

10

http://www.w3schools.com/tags/tag_ul.asp

ul { 
    display: block;
    list-style-type: disc;
    margin-top: 1em;
    margin-bottom: 1em;
    margin-left: 0;
    margin-right: 0;
    padding-left: 40px;
}

1
спасибі врятував мені життя, дивувався, чому, на біса, в моєму підменю було заповнення.
Асура

Це додасть vertical.margij у будь-який вкладений список.
VorganHaze

4

Ви не можете. Всякий раз, коли застосовується будь-яка таблиця стилів, яка присвоює властивість елементу, неможливо дістатися до стандартних параметрів браузера для будь-якого екземпляра елемента.

(Суперечлива) ідея reset.css полягає у позбавленні стандартних налаштувань браузера, щоб ви могли розпочати власний стиль із чистого столу. Жодна версія reset.css цього не робить повністю, але настільки, наскільки вони це роблять, автор, використовуючи reset.css, повинен повністю визначити візуалізацію.


2

Ви скидаєте поля для всіх елементів у другому блоці css. Поле за замовчуванням - 40 пікселів - це має вирішити проблему:

.my_container ul {list-style:disc outside none; margin-left:40px;}

1

Відповідь на майбутнє: CSS 4, ймовірно, міститиме ключове слово revert, яке повертає властивість до свого значення з таблиці стилів користувача або агента користувача [ джерело ]. На момент написання цього, лише Safari підтримує це - перевірте тут, щоб отримати оновлення щодо підтримки браузера.

У вашому випадку ви б використали:

.my_container ol, .my_container ul {
    list-style: revert;
}

Дивіться також цю іншу відповідь із деякими деталями.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.