feat: add border with top triangle snippet
This commit is contained in:
60
snippets/border-with-top-triangle.md
Normal file
60
snippets/border-with-top-triangle.md
Normal file
@ -0,0 +1,60 @@
|
||||
### Border with top triangle
|
||||
|
||||
Use pure CSS to create div with top triangle.
|
||||
|
||||
#### HTML
|
||||
|
||||
```html
|
||||
<div class="container">
|
||||
Border with top triangle
|
||||
</div>
|
||||
```
|
||||
|
||||
#### CSS
|
||||
|
||||
```css
|
||||
.container {
|
||||
display: block;
|
||||
position: relative;
|
||||
background: #ffffff;
|
||||
padding: 15px;
|
||||
border: 1px solid #dddddd;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.container:before, .container:after {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
bottom: 100%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.container:before {
|
||||
left: 19px;
|
||||
border: 11px solid transparent;
|
||||
border-bottom-color: #dddddd;
|
||||
}
|
||||
|
||||
.container:after {
|
||||
left: 20px;
|
||||
border: 10px solid transparent;
|
||||
border-bottom-color: #ffffff;
|
||||
}
|
||||
```
|
||||
|
||||
#### Demo
|
||||
|
||||
#### Explanation
|
||||
|
||||
1. Use pseudo-element `before` and `after` to create two triangles. How to create triangle can see the [Triangle](https://30-seconds.github.io/30-seconds-of-css/#triangle).
|
||||
2. The color of the `before` triangle as same as the container border color. The color of the `after` triangle as same as the container background color.
|
||||
3. The border width of the `before` triangle is wider 1px(depend on the border width of container) than the `after` triangle, then we can see the top triangle border on the container.
|
||||
4. The `after` triangle is on the right of the `before` triangle(1px) so that can make the left part border of the `before` triangle to visible.
|
||||
|
||||
#### Browser support
|
||||
|
||||
<span class="snippet__support-note">✅ No caveats.</span>
|
||||
|
||||
<!-- tags: visual -->
|
||||
Reference in New Issue
Block a user