A Pen by Maciej Jarczok on CodePen.
- http://trix.pl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=triangle($direction: right, $size: 10px, $color: #999) | |
width: 0 | |
height: 0 | |
line-height: 0 | |
border: $size solid transparent | |
@if $direction == top | |
border-bottom-color: $color | |
@else if $direction == right | |
border-left-color: $color | |
@else if $direction == bottom |
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.
elem.offsetLeft
,elem.offsetTop
,elem.offsetWidth
,elem.offsetHeight
,elem.offsetParent
elem.clientLeft
,elem.clientTop
,elem.clientWidth
,elem.clientHeight
elem.getClientRects()
,elem.getBoundingClientRect()
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Similar to the media toggle approach, we could also load CSS asynchronously by marking a link as an alternate stylesheet (designed to offer the user alternate presentations of a site), and then using JavaScript to toggle the rel attribute back to stylesheet when the file loads: | |
<link rel="preload" href="mystyles.css" as="style" onload="this.rel='stylesheet'"> | |