Potrzebuję nieuporządkowanej listy bez żadnych kul

2507

Utworzyłem nieuporządkowaną listę. Czuję, że kule na liście nieuporządkowanej są uciążliwe, więc chcę je usunąć.

Czy można mieć listę bez kul?

praveenjayapal
źródło

Odpowiedzi:

3688

Można usunąć kul ustawiając list-style-typesię nonena CSS dla elementu nadrzędnego (zazwyczaj <ul>), na przykład:

ul {
  list-style-type: none;
}

Możesz także dodać padding: 0i margin: 0do tego, jeśli chcesz również usunąć wcięcie.

Zapoznaj się z Listutorialem, aby zapoznać się ze świetnym opisem technik formatowania list.

Paul Dixon
źródło
@tovmeod Wydaje się działać dobrze w moim IE9 (na Win7). (jest to skomplikowana strona, a nie zwykły POC, może coś innego zmieniło zachowanie)
David Balažic
1
Jeśli jesteś podobny do mnie i szukasz sposobu na usunięcie wcięcia, zobacz to - stackoverflow.com/a/13939142/846727
Kunal
6
Och, ile razy tu wracałem po kopię / wklej :)
Jonathan.Brink
Miły akcent na wypełnienie i marginesy
Evgenii Klepilin
586

Jeśli używasz Bootstrap, ma on klasę „niestylowaną”:

Usuń domyślny styl listy i lewe dopełnienie elementów listy (tylko bezpośrednie dzieci).

Bootstrap 2:

<ul class="unstyled">
   <li>...</li>
</ul>

http://twitter.github.io/bootstrap/base-css.html#typography

Bootstrap 3 i 4:

<ul class="list-unstyled">
   <li>...</li>
</ul>

Bootstrap 3: http://getbootstrap.com/css/#type-lists

Bootstrap 4: https://getbootstrap.com/docs/4.3/content/typography/#unstyled

Scott Stafford
źródło
2
Gdybyśmy wymienili klasy dla każdego frameworka CSS, mielibyśmy bałagan na StackOverflow. Szybkie wyszukiwanie w Google ujawnia, że ​​Bootstrap był używany tylko przez 2% witryn w szczytowym momencie, a na pewno spada to wraz z wprowadzeniem bardziej sensownych rozwiązań, takich jak Flexbox i css grid.
PJ Brunet,
4
Właściwie to właśnie tego szukałem. Z Bootstrap korzysta 3,6% całego Internetu, więc nie spada. trends.builtwith.com/docinfo/Twitter-Bootstrap Szybkie wyszukiwanie w Google ujawnia, że ​​Bootstrap jest konsekwentnie umieszczany w kategorii „najpopularniejszych frameworków CSS”.
Bobort
209

Musisz użyć list-style: none;

<ul style="list-style: none;">
    <li>...</li>
</ul>
karim79
źródło
4
Należy pamiętać, że wbudowane css zastępuje css w plikach. W zależności od aplikacji / praktyk programistycznych może to być naprawdę denerwujące.
Mark Baijens,
39

Małe udoskonalenie poprzednich odpowiedzi: Aby dłuższe linie były bardziej czytelne, jeśli zostaną przeniesione na dodatkowe linie ekranu:

ul, li {list-style-type: none;}

li {padding-left: 2em; text-indent: -2em;}
Charliehoward
źródło
Działa, ale tylko dla IE8
Underverse
Nie ma potrzeby nakładania list-style-type: none;zarówno na, jak uli na li. Możesz po prostu to zrobić.
mfluehr
14

Jeśli nie możesz sprawić, by działał na <ul>poziomie, może być konieczne umieszczenie go list-style-type: none;na <li>poziomie:

<ul>
    <li style="list-style-type: none;">Item 1</li>
    <li style="list-style-type: none;">Item 2</li>
</ul>

Możesz utworzyć klasę CSS, aby uniknąć tego powtarzania:

<style>
ul.no-bullets li
{
    list-style-type: none;
}
</style>

<ul class="no-bullets">
    <li>Item 1</li>
    <li>Item 2</li>
</ul>

W razie potrzeby użyj !important:

<style>
ul.no-bullets li
{
    list-style-type: none !important;
}
</style>
Antonio Ooi
źródło
14

Użyłem stylu list zarówno na ul, jak i li, aby usunąć kule. Chciałem zastąpić pociski niestandardową postacią, w tym przypadku „kreską”. Daje to efekt wcięcia, który działa, gdy tekst się zawija.

ul.dashed-list {
    list-style: none outside none;
}

ul.dashed-list li:before {
    content: "\2014";
    float: left;
    margin: 0 0 0 -27px;
    padding: 0;
}

ul.dashed-list li {
    list-style-type: none;
}
<ul class="dashed-list">
  <li>text</li>
  <li>text</li>
</ul>

Chris Halcrow
źródło
5

Aby całkowicie usunąć uldomyślny styl:

    list-style-type: none;

    margin: 0;
    margin-block-start: 0;
    margin-block-end: 0;
    margin-inline-start: 0;
    margin-inline-end: 0;
    padding-inline-start: 0;
Masih Jahangiri
źródło
2

Jeśli chcesz to osiągnąć za pomocą samego czystego HTML, to rozwiązanie będzie działać we wszystkich głównych przeglądarkach:

Listy opisów

Po prostu użyj następującego kodu HTML:

<dl>
  <dt>List Item 1</dt>
    <dd>Sub-Item 1.1</dd>
  <dt>List Item 2</dt>
    <dd>Sub-Item 2.1</dd>
    <dd>Sub-Item 2.2</dd>
    <dd>Sub-Item 2.3</dd>
  <dt>List Item 3</dt>
    <dd>Sub-Item 3.1</dd>
</dl>

Co spowoduje utworzenie listy podobnej do następującej:

List Item 1
     Sub-Item 1.1
List Item 2
     Sub-Item 2.1
     Sub-Item 2.2
     Sub-Item 2.3
List Item 3
     Sub-Item 3.1

Przykład tutaj: https://jsfiddle.net/zumcmvma/2/

Odnośnik tutaj: https://www.w3schools.com/tags/tag_dl.asp

ShaneB
źródło
1
Jeśli zamierzasz użyć tej metody, użyj semantycznie właściwego sposobu wprowadzenia terminu, który ma zostać zdefiniowany, <dt>oraz definicji tego terminu w <dd>.
Bobort
2

To porządkuje listę pionowo bez punktorów. Tylko w jednej linii!

li {
    display: block;
}
matowy
źródło
Uwaga techniczna: działa, ponieważ zastępuje domyślną displaywartość <li>, czyli display: list-item;.
mfluehr
0

jeśli opracowujesz istniejący motyw, możliwe, że ma on niestandardowy styl listy.

więc jeśli nie możesz zmienić stylu listy za pomocą list-style: none;tagów ul lub li, najpierw sprawdź to, !importantponieważ być może inna linia stylu zastępuje twój styl.

jeśli tak nie jest, sprawdź, czy li:beforemoże ma treść. następnie wykonaj:

li:before { dispaly: none; }
Ali_Hr
źródło
-1
 <div class="custom-control custom-checkbox left">
    <ul class="list-unstyled">
        <li>
         <label class="btn btn-secondary text-left" style="width:100%;text-align:left;padding:2px;">
           <input type="checkbox" style="zoom:1.7;vertical-align:bottom;" asp-for="@Model[i].IsChecked" class="custom-control-input" /> @Model[i].Title
         </label>
        </li>
     </ul>
</div>
Oszałamiający Człowiek
źródło
-1

Próbowałem i obserwowałem:

header ul {
   margin: 0;
   padding: 0;
}
Dadhich Sourav
źródło
1
To nie usuwa pocisków. Po prostu zostają zepchnięci z ekranu.
mfluehr
-8

Jeśli chcesz uprościć sprawę bez uciekania się do CSS, po prostu wstawiam a &nbsp;do moich linii kodu. Tj <table></table>.

Tak, pozostawia kilka miejsc, ale to nie jest złe.

Phil
źródło
11
-1 proste? Bez CSS? Dlatego wiele stron internetowych jest w szokującym stanie. CSS dodaje prostoty. Tabele nie są drogą do przodu.
webnoob