Jak usunąć wcięcie z nieuporządkowanego elementu listy?
260
Chcę usunąć wszystkie wcięcia z ul. Próbowałem ustawienie margin, padding, text-indentdo 0, ale bezskutecznie. Wygląda na to, że ustawienie text-indentliczby ujemnej jest wystarczające - ale czy to naprawdę jedyny sposób na usunięcie wcięcia?
Trudno powiedzieć bez HTML i CSS, ale używając resetowania / normalizacji CSS składającego się z reguł ul {padding: 0; margin: 0;} wykonuje lewę w większości przypadków. Jestem pewien, że wcięcie tekstu nie ma z tym nic wspólnego.
Nie widząc, co właściwie robisz, trudno powiedzieć, na czym polega problem. Ustawienie zarówno marginesu, jak i dopełnienia na ul na 0 powinno działać w różnych przeglądarkach.
„Nie działało. Nie mogę zresetować CSS. Moje zmiany są częścią gigantycznego frameworka internetowego, nad którym pracuje ponad 60 osób, haha” - rzeczywiście Haha. Nie jasno zadałeś swoje pytanie!
Cóż, teraz kiedy edytowałeś swoją odpowiedź, wypunktowania zostały zachowane, ale nadal istnieje problem polegający na tym, że <li> z wieloma wierszami tekstu nie wcina poprawnie wszystkich wierszy. Jeśli będziesz kontynuować edycję, możesz w końcu skończyć z moim rozwiązaniem. : D
Moim preferowanym rozwiązaniem do usunięcia <ul> wcięcia jest prosty, jedno-liniowy CSS:
ul {padding-left:1.2em;}
<p>A leading line of paragraph text</p><ul><li>Bullet points align with paragraph text above.</li><li>Long list items wrap around correctly. Long list items wrap around correctly. Long list items wrap around correctly. Long list items wrap around correctly. Long list items wrap around correctly. </li><li>List item 3</li></ul><p>A trailing line of paragraph text</p>
Wszystkie problemy wyjaśniłem już w moim poście @aioobe. Ale tutaj jeszcze raz: Akceptowana odpowiedź (status na teraz, ponieważ po moim oryginalnym opublikowaniu została wielokrotnie edytowana, aby ją poprawić) teraz zachowuje punktory (jeśli użyjesz drugiego podanego przykładu), ale nie wcina ona poprawnie multilinii punktowanej tekst. Oto skrzypce drugiego przykładu zaakceptowanej odpowiedzi, zmodyfikowanej w celu pokazania efektu: jsfiddle.net/v6nyuq6f/88 A oto ta sama skrzynka
Jest rok 2016 i oparcie się na pewnej wartości, która „nie jest idealna dla wszystkich przeglądarek”, jest najczystszym rozwiązaniem tego dość powszechnego problemu. Czy jest jakiś sposób, aby uzyskać dokładną szerokość symbolu elementu, być może używając funkcji CSS3?
Na <li> s z wieloma liniami tekstu, list-style-position: insidewyrównuje tekst drugiej i wszystkich kolejnych linii z punktorem. To z pewnością nie jest pożądane.
@Madbreaks Może to działać, jeśli selektor jest prawidłowy, a przypadek użycia jest poprawny, ale prawy prob nie jest tym, może w tym przypadku istnieje główna reguła css, którą należy zastąpić przez zmianę pliku podstawowego, więc pozostawił hals jak nie rąbanie rdzenia? Nie wiem, może się mylę
ol, ul {
padding-left:0;}
li {
list-style: none;
padding-left:1.25rem;
position: relative;}
li::before {
left:0;
position: absolute;}
ol {
counter-reset: counter;}
ol li::before {
content: counter(counter)".";
counter-increment: counter;}
ul li::before {
content:"●";}
Ponieważ pierwotne pytanie nie jest jasne, jakie są jego wymagania, próbowałem rozwiązać ten problem zgodnie z wytycznymi określonymi przez inne odpowiedzi. W szczególności:
Wyrównaj punktory listy z zewnętrznym tekstem akapitu
Wyrównaj wiele linii w obrębie tego samego elementu listy
Chciałem też rozwiązania, które nie opierałoby się na przeglądarkach uzgadniających, ile paddingu użyć. Dodałem uporządkowaną listę dla kompletności.
Nie rozumiem, dlaczego zostałeś odrzucony inaczej niż znak ujemny przed zerem. Próbowałem tego na Google Chrome i działało, podczas gdy padding-left: 0 rozwiązanie nie. To jest na Google Chrome w wersji 79.0.3945.88 WinX, 64-bit.
Dodając do mojego powyższego komentarza ... ponieważ nie mogę go edytować ... bawiłem się tym trochę więcej, aw najnowszym Firefoksie (71.0) zachowanie jest takie samo. Jest tak jednak w przypadku list nieuporządkowanych (ul). Podczas korzystania z list uporządkowanych (ol), 1.2em wydaje się wyrównywać lewą krawędź listy do lewego marginesu innego tekstu (zgodnie z odpowiedzią Jpsy powyżej).
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.