Reputation: 508
Is it possible to indent the details information as it shows under the summary tag? Currently the information is left-aligned with both tags.
<details> Details 1
<summary> Summary 1 </summary>
</details>
<details>
<summary> Summary 2 </summary>
Details 2
</details>
<details> Details 3
<summary> Summary 3 </summary>
</details>
I have tried text-indent, but it indents the summary information and NOT the details.
Upvotes: 3
Views: 1202
Reputation: 3797
What worked for me was to give a left margin to everything in details except summary, as seen in the "added css rule" below, using the :not() CSS pseudoclass.
Unfortunately, it requires that you wrap your inner bits in some element tag, because a non-element text node cannot be matched. Here I used <div>
.
/* added css rule */
details > :not(summary) {
margin-left: 2em;
}
<details open> <div>Details 1</div>
<summary> Summary 1 </summary>
</details>
<details open>
<summary> Summary 2 </summary>
<div>Details 2</div>
</details>
<details> <div>Details 3</div>
<summary> Summary 3 </summary>
</details>
Upvotes: 1
Reputation: 445
With margin or padding you can style it. Example with padding:
details > summary {
background-color: #888;
cursor: pointer;
padding: .5rem 1rem;
}
details > summary > * {
display: inline;
}
details > div {
border: 2px solid #888;
margin-top: 0;
padding: 35px;
}
<details>
<div>Details 1 </div>
<summary> Summary 1 </summary>
</details>
<details>
<summary> Summary 2 </summary>
<div>Details 2 </div>
</details>
<details>
<summary> Summary 3 </summary>
<div>Details 3 </div>
</details>
Upvotes: 1
Reputation: 86084
A negative margin seems to work pretty well.
details {
margin-left: 2em;
}
summary {
margin-left: -2em;
}
<details> Details 1
<summary> Summary 1 </summary>
</details>
<details>
<summary> Summary 2 </summary>
Details 2
</details>
<details> Details 3
<summary> Summary 3 </summary>
</details>
Upvotes: 4