diff --git a/public/submissions/marker.html b/public/submissions/marker.html new file mode 100644 index 0000000..67e6cdf --- /dev/null +++ b/public/submissions/marker.html @@ -0,0 +1,199 @@ + + + +Styling list markers + +

Styling list markers

+

Let's say you have a list:

+
<ul>
+  <li>W3C</li>
+  <li>Web</li>
+  <li>TPAC</li>
+</ul>
+ + +

But what if you want to style the bullets to look more amazing? Then ::marker comes to the rescue!

+
<style>
+::marker { font-size: 200%; content: attr(data-marker) " " }
+</style>
+<ul>
+  <li data-marker="🦄">W3C</li>
+  <li data-marker="😍">Web</li>
+  <li data-marker="🗣️">TPAC</li>
+</ul>
+ + +

::marker is a tree-abiding pseudo-element, +just like ::before and ::after. However, it only accepts a limited subset of properties.

+ +

One of these properties is content. By default it's set to normal, but you can set it to none to suppress it, or to the desired string, url(), counter(), etc.

+ +

It can also be styled with any inherited property, like font-size. Even if it has no direct effect on the marker box itself, it will still be able to affect its contents.

+ +

And you can even use animations and transitions!

+ +
<style>
+@keyframes anim {
+  from { color: blue }
+  to { color: orange }
+}
+::marker {
+  animation: anim 1s infinite alternate linear;
+  font-weight: bold;
+  font-size: 200%;
+}
+</style>
+<ol>
+  <li>W3C</li>
+  <li>Web</li>
+  <li>TPAC</li>
+</ol>
+ + +

When customizing the contents of the ::marker, it can be convinient to use counter(list-item) to get the number of the current list item:

+ +
<style>
+::marker {
+  content: "[" counter(list-item) "] ";
+}
+</style>
+<ol>
+  <li>W3C</li>
+  <li>Web</li>
+  <li>TPAC</li>
+</ol>
+ + +

However, in that case it's probably more convenient to use another tool: @counter-style.

+

This at-rule lets you create a custom list style that can then be referenced in list-style-type:

+ +
<style>
+@counter-style my-style {
+  system: extends decimal;
+  prefix: "[";
+  suffix: "] ";
+}
+ol {
+  list-style-type: my-style
+}
+</style>
+<ol>
+  <li>W3C</li>
+  <li>Web</li>
+  <li>TPAC</li>
+</ol>
+ + +

However, for very simple cases, it's probably easier to set list-style-type to a string:

+
<ul>
+  <li style="list-style-type: '🦄 '">W3C</li>
+  <li style="list-style-type: '😍 '">Web</li>
+  <li style="list-style-type: '🗣️ '">TPAC</li>
+</ul>
+