Baseline Widely available
Window.getComputedStyle()
ë©ìëë ì¸ìë¡ ì ë¬ë°ì ììì 모ë CSS ìì±ê°ì ë´ì ê°ì²´ë¥¼ íì í©ëë¤. ì´ ìì±ê°ë¤ì, í´ë¹ ììì ëíì¬ íì± ì¤íì¼ìí¸ì ìì±ê°ì ëí 기본 ì°ì°ì´ 모ë ë°ìë ê²°ê³¼ê°ì
ëë¤. ê°ë³ CSSìì± ê°ì ê°ì²´ë¥¼ íµí´ ì ê³µëë API ëë CSS ìì± ì´ë¦ì ì¬ì©í´ì ê°ë¨í ìì¸íí´ì ì¡ì¸ì¤í ì ììµëë¤.
var style = window.getComputedStyle(element[, pseudoElt]);
ìì±ê°ì ì»ì¼ë ¤íë Element
.
ì¼ì¹ìí¬ ìì¬ìì(pseudo element
)를 ì§ì íë 문ìì´. ë³´íµì ììë¤ì ëí´ìë ìëµëê±°ë null
ì´ì´ì¼ í¨.
ë°íëë style
ì ììì ì¤íì¼ì´ ë³ê²½ ë ë ìëì¼ë¡ ì
ë°ì´í¸ëë ì¤ìê° CSSStyleDeclaration
ê°ì²´ì
ëë¤.
ì´ ìì ììë ê°ë¨í <div>
ììì CSSì¤íì¼ì ì ì©íê³ , getComputedStyle()
를 ì¬ì©í´ì ì ì©ë ì¤íì¼ê°ì ì°¾ìë¸ íì <div>
ì 본문ì¼ë¡ ì¶ë ¥í©ëë¤.
p {
width: 400px;
margin: 0 auto;
padding: 20px;
line-height: 2;
font-size: 2rem;
font-family: sans-serif;
background: purple;
color: white;
text-align: center;
}
let para = document.querySelector("p");
let compStyles = window.getComputedStyle(para);
para.textContent =
"My computed font-size is " +
compStyles.getPropertyValue("font-size") +
",\nand my computed line-height is " +
compStyles.getPropertyValue("line-height") +
".";
ê²°ê³¼ ì¤ëª
ë©ìëì í¸ì¶ìì ë°íëë ê°ì²´ì ìë£íì ììì style
ìì±ìì ë°íëë ê°ì²´ì ëì¼í CSSStyleDeclaration
íì
ëë¤. ê·¸ë¬ë ë ê°ì²´ë ë¤ë¥¸ 목ì ì ê°ì§ê³ ììµëë¤. getComputedStyle
ìì ë°íë ê°ì²´ë ì½ê¸° ì ì©ì´ë©° ììì (<style> ëë ì¸ë¶ stylesheetë¡ ì¤ì ëë ê²ë í¬í¨í´ì) ì¤íì¼ì ê²ì¬íë ë° ì¬ì©í ì ììµëë¤. elt.style
ê°ì²´ë í¹ì í ììì ì¤íì¼ì ì¤ì íë ë° ì¬ì©í´ì¼ í©ëë¤.
첫 ë²ì§¸ ì¸ìë ììì¬ì¼í©ëë¤. #text ë ¸ëê°ì ë¹-ìì ë ¸ë를 ì ë¬íë©´ ì¤ë¥ê° ë°ìí©ëë¤.
defaultView
ì¨ë¼ì¸ì ë§ì ì½ë ìíì¤ìì, getComputedStyle
ì document.defaultView
ê°ì²´ìì ì¬ì©ë©ëë¤ë§, ëê°ì ê²½ì°ìë getComputedStyle
ì window
ê°ì²´ìë ì¡´ì¬íë¯ë¡ document.defaultView
ê°ì²´ìì ì¬ì©íë í¨í´ì íìíì§ ììµëë¤. defaultView
í¨í´ì (1) window ì¤íì ìì±íê³ ì¶ì§ ìì ì¬ëë¤ê³¼ (2) Javaììë ì¬ì©í ììë API를 ë§ëë ê²ì ì¡°í©ì´ìì ê°ë¥ì±ì´ í½ëë¤. ê·¸ë¬ë defaultView
ì ë©ìë를 ì¬ì©í´ì¼ë§íë ê²½ì°ê° íë ììµëë¤. Firefox 3.6ì ì¬ì©íì¬ íë ì ì¤íì¼(framed styles)ì ì¡ì¸ì¤íë ê²½ì°ì
ëë¤.
getComputedStyleì ìì¬ìì(pseudo-elements, ::after
, ::before
, ::marker
, ::line-marker
, specì°¸ê³ )ìì ì¤íì¼ ì 보를 ê°ì ¸ì¬ ì ììµëë¤.
<style>
h3::after {
content: " rocks!";
}
</style>
<h3>generated content</h3>
<script>
var h3 = document.querySelector("h3");
var result = getComputedStyle(h3, ":after").content;
console.log("the generated content is: ", result); // returns ' rocks!'
</script>
ì°¸ê³
ë°íëë CSSStyleDeclaration
ê°ì²´ìë ì§ìëë 모ë CSSì 본ëìì±(longhand)ëª
ì ëí íì±ê°ì ê°ê² ë©ëë¤. ìë¡, 본ëìì±ëª
border-bottom-width
ì ê²½ì°ë¥¼ ë³´ë©´, border-width
ì border
ê°ì ë¨ì¶ìì±ëª
ì´ ì¬ì©ë©ëë¤. font-size
ê³¼ ê°ì 본ëìì±ëª
ë§ì ì¬ì©íì¬ ìì±ê°ì ì§ìíë ê²ì´ ìì í©ëë¤. font
ê°ì ë¨ì¶ìì±ëª
ì ì¬ì©íì¬ ì§ìíë ê²ì ëë¶ë¶ì ë¸ë¼ì°ì ìì ëìíì§ ìì ê²ì
ëë¤.
CSSìì± ê°ì getPropertyValue(propName)
API를 ì¬ì©íê±°ë, cs[' z-index']
ëë cs.zIndex
ê°ì ë°©ìì¼ë¡ ê°ì²´ì ì§ì ì¸ë±ì±íì¬ ì¡ì¸ì¤í ì ììµëë¤.
getComputedStyle
ìì ë°íëë ê°ë¤ì resolved values
ë¼ê³ í©ëë¤. ì´ ê°ë¤ì ì¼ë°ì ì¼ë¡ CSS 2.1 computed values
ê³¼ ê°ì§ë§, ì¼ë¶ ì¤ëë ìì±(width
, height
ëë padding
)ì ëí´ìë used values
ì
ëë¤. ìë, CSS 2.0ììë ì´ computed values를 cascadingê³¼ inheritance íì "ì¬ì©ì¤ë¹ìë£"ë ìµì¢
ê°ì ì미íìµëë¤. íì§ë§, CSS 2.1ììë computed values를 pre-layoutì¼ë¡, used valuesë¤ì post-layoutì¼ë¡ ì¬ì ìíìµëë¤. CSS 2.0 ìì±ë¤ì ëí´ìë getComputedStyle
ì ì§ê¸ì used valuesë¼ê³ ë¶ë¦¬ë ì ì미ì computed values를 ë°íí©ëë¤. pre-layoutê³¼ post-layoutê°ì ì°¨ì´ë¥¼ ëíë´ë ìë¡ì ììì width ëë height(layoutì´ë¼ê³ ë í¨)를 ëíë´ë ë°±ë¶ì¨(í¼ì¼í¸íì)ì´ ì´ ìëë°, ì´ ê°ë¤ì used valueì ê²½ì°ìë§ í½ì
(ì ìë¹íë ë체물)ë¡ ëì²´ë©ëë¤.
ëª ëª ìë ¤ì§ ê²½ì°ì ëí´, ë°íê°ì ìëì ì¼ë¡ ë¶ì íí ê°ì ê°ì§ëë¤. í¹í, ìì CSS History Leak ë³´ì 문ì 를 í¼í기 ìí´ ë¸ë¼ì°ì ë ë§í¬ì ëí´ìë ëª
ìì ì¼ë¡ used valueì ëí´ "ê±°ì§ë§"ì íëë°, ì¬ì©ìê° ë§í¬ë ì¬ì´í¸ë¥¼ íë²ë 방문í ì ì´ ìë ê² ì²ë¼ ê°ì ë°íí©ëë¤. ì´ê²ì´ ì´ë»ê² 구íëë ì§ì ëí ìì¸í ë´ì©ì http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history-leak/ì http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/를 ë³´ììì¤. ëë¶ë¶ì ìµì ë¸ë¼ì°ì ë ìì¬ ì í기 ì¤íì¼ ìì©ê³¼ getComputedStyle
ì ë°íê°ì ëí´ì ì ì¬í ë³ê²½ ì¬íì ì ì©íìµëë¤.
CSSì ì´ ì¤ì getComputedStyle
를 í¸ì¶íë©´, Firefoxììë ìëìì±ê°(Original property value)ì ë°ííì§ë§, WebKitììë ìµì¢
ìì±ê°(final property value)ì ë°íí©ëë¤.
Firefoxììë auto
ê°ì ê°ì§ ìì±ë¤ì´ auto
ê°ì´ ìëë¼ used value를 ë°íí©ëë¤. ê·¸ëì, height:100px;
ì 컨í
ì´ë ë¸ë¡ ìì height:30px;
ì ìì±ì ê°ì§ ìì를 ë£ê³ top:auto;
ì bottom:0;
를 ì ì©íë©´, top
ì ëí computed styleê°ì ì구í ë Firefoxë 100px-30px=70px
ì ê²°ê³¼ë¡ì top:70px
를 ë°íí©ëë¤.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4