Ich möchte steuern, wie viel horizontaler Raum eine Kugel <li>
in einem <ol>
oder nach rechts drückt <ul>
.
Das heißt, anstatt immer zu haben
* Some list text goes
here.
Ich würde das gerne ändern können
* Some list text goes
here.
oder
*Some list text goes
here.
Ich sah mich um, konnte aber nur Anweisungen zum Verschieben des gesamten Blocks nach links oder rechts finden, z. B. http://www.alistapart.com/articles/taminglists/
html
css
html-lists
Erjiang
quelle
quelle
Antworten:
span
Stellen Sie den Inhalt in eine Position, die relativ positioniert ist, und steuern Sie den Raum anhand derleft
Eigenschaft vonspan
.quelle
<SPAN>
nutzen kannid
oderclass
Tags, einen Blick auf W3C . Wenn die Frage ist, ob sie semantische Bedeutung vermitteln kann, lesen Sie diese Antwort . Technisch gesehen ist das<SPAN>
Tag für sich genommen ein nicht-semantisches Inline-Element, das jedoch in gewisser Weise mehr Flexibilität bei der Wiederverwendung bietet. Heutzutage glaube ich, dass man deninline-block
Deskriptor verwenden kann, um eine viel größere Auswahl an Formatierungsoptionen zu ermöglichen.Um die anderen Antworten hier zusammenzufassen: Wenn Sie den Abstand zwischen Aufzählungszeichen und dem Text in einem
<li>
Listenelement genauer steuern möchten , haben Sie folgende Möglichkeiten:(1) Verwenden Sie ein Hintergrundbild:
Vorteile:
background-position
um das Bild praktisch überall in Bezug auf den Text zu positionieren, indem Sie Pixel, Ems oder% verwendenNachteile:
2. Verwenden Sie Polsterung für das
<li>
TagVorteile:
<li>
können Sie so viel zusätzlichen horizontalen Abstand zwischen dem Aufzählungszeichen und dem Text hinzufügen, wie Sie möchtenNachteile:
(3) Wickeln Sie den Text in ein zusätzliches
<span>
ElementVorteile:
padding-top
um die<span>
jemand anderes haben. eine Problemumgehung dafür ...)Nachteile:
Wir hoffen auf einige neue Funktionen im Listenstil in CSS4, damit wir intelligentere Aufzählungszeichen erstellen können, ohne auf Bilder oder Exta-Markups zurückgreifen zu müssen :)
quelle
outside
.display: block;
das span-Element hinzufügen , damit auch der umgebrochene Text ausgerichtet wird (ich habe auch Ankertags anstelle von span verwendet)Das sollte es tun. Stellen Sie sicher, dass Ihre Kugeln nach außen gerichtet sind. Sie können auch CSS-Pseudoelemente verwenden, wenn Sie sie in IE7 nach unten ablegen können. Ich empfehle nicht wirklich, Pseudo-Elemente für diese Art von Dingen zu verwenden, aber es funktioniert, um die Entfernung zu kontrollieren.
quelle
list-style-position: outside
und Auffüllen derLI
Elemente können Sie den Abstand zwischen den Aufzählungspunkten vergrößern, aber es funktioniert immer noch nicht umgekehrt über einen vom Browser angegebenen Versatz hinaus. Siehe diesen JS Bin .text-indent
auf dem<UL>
oder<LI>
, um den vom Browser erzwungenen Abstand zwischen Aufzählungspunkt und<LI>
Inhalt zu negieren . Das heißt, erhöhen Siepadding-left
wie oben gezeigt, um den Abstand zu vergrößern, und verringern Sietext-indent
, um den Abstand zwischen dem Aufzählungspunkt und dem Inhalt wie gewünscht zu verringern.<LI>
in eine zweite Zeile eingeschlossen wird, solche nachfolgenden Zeilen basierend auf dem Rand / Abstand / Einzug, den wir für die erste Zeile über rückgängig gemacht haben, erneut eingerückttext-indent
. SighAlte Frage, aber das: Vorher-Pseudo-Element funktioniert hier gut.
Es funktioniert sehr gut und erfordert nicht viele zusätzliche Regeln oder HTML.
Prost!
quelle
margin-left: -5px
(oder welcher Wert auch immer) den Abstand zwischen dem Aufzählungszeichen und dem<li>
ElementFür Listenstil: Inline :
Es ist fast das gleiche wie die Antwort von DSMann8, aber weniger CSS-Code.
Du musst nur
Prost
quelle
list-style-position: inside
auch, was großartig ist!Sie können das
padding-left
Attribut für die Listenelemente verwenden ( nicht für die Liste selbst!).quelle
list-style-position
der Standardwert eingestellt istoutside
.<span>
Element nur für Entwurfszwecke zu verwenden.Die Verwendung von Text-Einzug auf li funktioniert am besten.
Texteinzug: -x px; bewegt die Kugel näher an li und umgekehrt.
Bei Verwendung von Relative On Span funktioniert die negative Linke möglicherweise nicht ordnungsgemäß mit älteren Versionen für IE. PS: Vermeiden Sie es, so viele Positionen wie möglich zu vergeben.
quelle
Hier ist eine andere Lösung mit CSS-Zähler und Pseudoelementen. Ich finde es eleganter, da weder zusätzliches HTML-Markup noch CSS-Klassen erforderlich sind:
Ich verwende nicht unterbrechbare Leerzeichen, sodass der Abstand nur die erste Zeile meiner Listenelemente betrifft (wenn das Listenelement mehr als eine Zeile lang ist). Sie können hier stattdessen Polster verwenden.
quelle
Alte Frage aber immer noch relevant. Ich empfehle die Verwendung von Negativ
text-indent
.list-style-position
muss seinoutside
.Vorteile:
Nachteile:
quelle
Eine ungeordnete Liste beginnt mit dem Tag ul. Jedes Listenelement beginnt mit dem Die Listenelemente werden standardmäßig mit Aufzählungszeichen (kleinen schwarzen Kreisen) markiert:
Ausgabe:
Die Eigenschaft text-indent gibt den Einzug der ersten Zeile in einem Textblock an.
Hinweis: Negative Werte sind zulässig. Die erste Zeile wird nach links eingerückt, wenn der Wert negativ ist.
quelle
Es scheint, dass Sie den Abstand (etwas) durch Auffüllen des <li> -Tags steuern können.
Der Haken ist, dass es Ihnen nicht zu erlauben scheint, es so eng wie Ihr letztes Beispiel zu zerkleinern.
Dazu können Sie versuchen, den Listentyp zu deaktivieren und & bull;
quelle
Es scheint eine viel sauberere Lösung zu geben, wenn Sie nur den Abstand zwischen dem Aufzählungspunkt und dem Text verringern möchten:
quelle
Alternativ können Sie auch einen Hintergrundbildersatz verwenden, um die vertikale und horizontale Positionierung vollständig zu steuern.
Siehe die Antwort auf diese Frage
quelle
Definition und Verwendung
Die Eigenschaft list-style-position gibt an, ob die Listenelementmarkierungen innerhalb oder außerhalb des Inhaltsflusses angezeigt werden sollen.
Quelle: http://www.w3schools.com/cssref/pr_list-style-position.asp
quelle
Sie können verwendet werden
ul li:before
und ein Hintergrundbild und zuweisenposition: relative
undposition:absolute
an denli
undli:before
dargestellt. Auf diese Weise können Sie ein Bild erstellen und es relativ zum Li positionieren, wo immer Sie möchten.quelle
Verwenden Sie
padding-left:1em; text-indent:-1em
für das<li>
Tag.Dann
list-style-position: inside
für das<ul>
Tag.quelle
Die folgende Lösung funktioniert gut, wenn Sie den Text näher an das Aufzählungszeichen verschieben möchten und selbst wenn Sie mehrere Textzeilen haben.
margin-right
Mit dieser Option können Sie den Text näher an das Aufzählungszeichen verschiebentext-indent
stellt sicher, dass mehrere Textzeilen immer noch korrekt ausgerichtet sindquelle
Verwenden
<span style="display: flex;">
innerhalb jedes<li>
.quelle