CINXE.COM

カスケード、詳細度、継承 - ウェブ開発を学ぶ | MDN

<!doctype html><html lang="en-US" prefix="og: https://ogp.me/ns#"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><link rel="icon" href="https://developer.mozilla.org/favicon-48x48.bc390275e955dacb2e65.png"/><link rel="apple-touch-icon" href="https://developer.mozilla.org/apple-touch-icon.528534bba673c38049c2.png"/><meta name="theme-color" content="#ffffff"/><link rel="manifest" href="https://developer.mozilla.org/manifest.f42880861b394dd4dc9b.json"/><link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="MDN Web Docs"/><title>カスケード、詳細度、継承 - ウェブ開発を学ぶ | MDN</title><link rel="alternate" title="Kaskade, Spezifität und Vererbung" href="https://developer.mozilla.org/de/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" hrefLang="de"/><link rel="alternate" title="Cascade, specificity, and inheritance" href="https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" hrefLang="en"/><link rel="alternate" title="Cascada y herencia" href="https://developer.mozilla.org/es/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" hrefLang="es"/><link rel="alternate" title="Cascade, spécificité et héritage" href="https://developer.mozilla.org/fr/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" hrefLang="fr"/><link rel="alternate" title="계단식 및 상속" href="https://developer.mozilla.org/ko/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" hrefLang="ko"/><link rel="alternate" title="Cascata, especificidade e herança" href="https://developer.mozilla.org/pt-BR/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" hrefLang="pt"/><link rel="alternate" title="Каскад и наследование" href="https://developer.mozilla.org/ru/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" hrefLang="ru"/><link rel="alternate" title="层叠、优先级与继承" href="https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" hrefLang="zh"/><link rel="alternate" title="カスケード、詳細度、継承" href="https://developer.mozilla.org/ja/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" hrefLang="ja"/><link rel="preload" as="font" type="font/woff2" href="/static/media/Inter.var.c2fe3cb2b7c746f7966a.woff2" crossorigin=""/><link rel="alternate" type="application/rss+xml" title="MDN Blog RSS Feed" href="https://developer.mozilla.org/en-US/blog/rss.xml" hrefLang="en"/><meta name="description" content="このレッスンの目的は、CSS の最も基本的な概念であるカスケード、詳細度、継承について理解を深めることです。これらの概念は、CSS を HTML に適用する方法とスタイル宣言の間の競合を解決する方法を制御するものです。"/><meta property="og:url" content="https://developer.mozilla.org/ja/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance"/><meta property="og:title" content="カスケード、詳細度、継承 - ウェブ開発を学ぶ | MDN"/><meta property="og:type" content="website"/><meta property="og:locale" content="ja"/><meta property="og:description" content="このレッスンの目的は、CSS の最も基本的な概念であるカスケード、詳細度、継承について理解を深めることです。これらの概念は、CSS を HTML に適用する方法とスタイル宣言の間の競合を解決する方法を制御するものです。"/><meta property="og:image" content="https://developer.mozilla.org/mdn-social-share.d893525a4fb5fb1f67a2.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:height" content="1080"/><meta property="og:image:width" content="1920"/><meta property="og:image:alt" content="The MDN Web Docs logo, featuring a blue accent color, displayed on a solid black background."/><meta property="og:site_name" content="MDN Web Docs"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:creator" content="MozDevNet"/><link rel="canonical" href="https://developer.mozilla.org/ja/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance"/><style media="print">.article-actions-container,.document-toc-container,.language-menu,.main-menu-toggle,.on-github,.page-footer,.place,.sidebar,.top-banner,.top-navigation-main,ul.prev-next{display:none!important}.main-page-content,.main-page-content pre{padding:2px}.main-page-content pre{border-left-width:2px}</style><script src="/static/js/gtag.js" defer=""></script><script defer="" src="/static/js/main.1b60bff1.js"></script><link href="/static/css/main.959b5ea9.css" rel="stylesheet"/></head><body><script>if(document.body.addEventListener("load",(t=>{t.target.classList.contains("interactive")&&t.target.setAttribute("data-readystate","complete")}),{capture:!0}),window&&document.documentElement){const t={light:"#ffffff",dark:"#1b1b1b"};try{const e=window.localStorage.getItem("theme");e&&(document.documentElement.className=e,document.documentElement.style.backgroundColor=t[e]);const o=window.localStorage.getItem("nop");o&&(document.documentElement.dataset.nop=o)}catch(t){console.warn("Unable to read theme from localStorage",t)}}</script><div id="root"><ul id="nav-access" class="a11y-nav"><li><a id="skip-main" href="#content">Skip to main content</a></li><li><a id="skip-search" href="#top-nav-search-input">Skip to search</a></li><li><a id="skip-select-language" href="#languages-switcher-button">Skip to select language</a></li></ul><div class="page-wrapper category-css document-page"><div class="top-banner loading"><section class="place top container"></section></div><div class="sticky-header-container"><header class="top-navigation "><div class="container "><div class="top-navigation-wrap"><a href="/ja/" class="logo" aria-label="MDN homepage"><svg id="mdn-docs-logo" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 694.9 104.4" style="enable-background:new 0 0 694.9 104.4" xml:space="preserve" role="img"><title>MDN Web Docs</title><path d="M40.3 0 11.7 92.1H0L28.5 0h11.8zm10.4 0v92.1H40.3V0h10.4zM91 0 62.5 92.1H50.8L79.3 0H91zm10.4 0v92.1H91V0h10.4z" class="logo-m"></path><path d="M627.9 95.6h67v8.8h-67v-8.8z" class="logo-_"></path><path d="M367 42h-4l-10.7 30.8h-5.5l-10.8-26h-.4l-10.5 26h-5.2L308.7 42h-3.8v-5.6H323V42h-6.5l6.8 20.4h.4l10.3-26h4.7l11.2 26h.5l5.7-20.3h-6.2v-5.6H367V42zm34.9 20c-.4 3.2-2 5.9-4.7 8.2-2.8 2.3-6.5 3.4-11.3 3.4-5.4 0-9.7-1.6-13.1-4.7-3.3-3.2-5-7.7-5-13.7 0-5.7 1.6-10.3 4.7-14s7.4-5.5 12.9-5.5c5.1 0 9.1 1.6 11.9 4.7s4.3 6.9 4.3 11.3c0 1.5-.2 3-.5 4.7h-25.6c.3 7.7 4 11.6 10.9 11.6 2.9 0 5.1-.7 6.5-2 1.5-1.4 2.5-3 3-4.9l6 .9zM394 51.3c.2-2.4-.4-4.7-1.8-6.9s-3.8-3.3-7-3.3c-3.1 0-5.3 1-6.9 3-1.5 2-2.5 4.4-2.8 7.2H394zm51 2.4c0 5-1.3 9.5-4 13.7s-6.9 6.2-12.7 6.2c-6 0-10.3-2.2-12.7-6.7-.1.4-.2 1.4-.4 2.9s-.3 2.5-.4 2.9h-7.3c.3-1.7.6-3.5.8-5.3.3-1.8.4-3.7.4-5.5V22.3h-6v-5.6H416v27c1.1-2.2 2.7-4.1 4.7-5.7 2-1.6 4.8-2.4 8.4-2.4 4.6 0 8.4 1.6 11.4 4.7 3 3.2 4.5 7.6 4.5 13.4zm-7.7.6c0-4.2-1-7.4-3-9.5-2-2.2-4.4-3.3-7.4-3.3-3.4 0-6 1.2-8 3.7-1.9 2.4-2.9 5-3 7.7V57c0 3 1 5.6 3 7.7s4.5 3.1 7.6 3.1c3.6 0 6.3-1.3 8.1-3.9 1.8-2.7 2.7-5.9 2.7-9.6zm69.2 18.5h-13.2v-7.2c-1.2 2.2-2.8 4.1-4.9 5.6-2.1 1.6-4.8 2.4-8.3 2.4-4.8 0-8.7-1.6-11.6-4.9-2.9-3.2-4.3-7.7-4.3-13.3 0-5 1.3-9.6 4-13.7 2.6-4.1 6.9-6.2 12.8-6.2 5.7 0 9.8 2.2 12.3 6.5V22.3h-8.6v-5.6h15.8v50.6h6v5.5zM493.2 56v-4.4c-.1-3-1.2-5.5-3.2-7.3s-4.4-2.8-7.2-2.8c-3.6 0-6.3 1.3-8.2 3.9-1.9 2.6-2.8 5.8-2.8 9.6 0 4.1 1 7.3 3 9.5s4.5 3.3 7.4 3.3c3.2 0 5.8-1.3 7.8-3.8 2.1-2.6 3.1-5.3 3.2-8zm53.1-1.4c0 5.6-1.8 10.2-5.3 13.7s-8.2 5.3-13.9 5.3-10.1-1.7-13.4-5.1c-3.3-3.4-5-7.9-5-13.5 0-5.3 1.6-9.9 4.7-13.7 3.2-3.8 7.9-5.7 14.2-5.7s11 1.9 14.1 5.7c3 3.7 4.6 8.1 4.6 13.3zm-7.7-.2c0-4-1-7.2-3-9.5s-4.8-3.5-8.2-3.5c-3.6 0-6.4 1.2-8.3 3.7s-2.9 5.6-2.9 9.5c0 3.7.9 6.8 2.8 9.4 1.9 2.6 4.6 3.9 8.3 3.9 3.6 0 6.4-1.3 8.4-3.8 1.9-2.6 2.9-5.8 2.9-9.7zm45 5.8c-.4 3.2-1.9 6.3-4.4 9.1-2.5 2.9-6.4 4.3-11.8 4.3-5.2 0-9.4-1.6-12.6-4.8-3.2-3.2-4.8-7.7-4.8-13.7 0-5.5 1.6-10.1 4.7-13.9 3.2-3.8 7.6-5.7 13.2-5.7 2.3 0 4.6.3 6.7.8 2.2.5 4.2 1.5 6.2 2.9l1.5 9.5-5.9.7-1.3-6.1c-2.1-1.2-4.5-1.8-7.2-1.8-3.5 0-6.1 1.2-7.7 3.7-1.7 2.5-2.5 5.7-2.5 9.6 0 4.1.9 7.3 2.7 9.5 1.8 2.3 4.4 3.4 7.8 3.4 5.2 0 8.2-2.9 9.2-8.8l6.2 1.3zm34.7 1.9c0 3.6-1.5 6.5-4.6 8.5s-7 3-11.7 3c-5.7 0-10.6-1.2-14.6-3.6l1.2-8.8 5.7.6-.2 4.7c1.1.5 2.3.9 3.6 1.1s2.6.3 3.9.3c2.4 0 4.5-.4 6.5-1.3 1.9-.9 2.9-2.2 2.9-4.1 0-1.8-.8-3.1-2.3-3.8s-3.5-1.3-5.8-1.7-4.6-.9-6.9-1.4c-2.3-.6-4.2-1.6-5.7-2.9-1.6-1.4-2.3-3.5-2.3-6.3 0-4.1 1.5-6.9 4.6-8.5s6.4-2.4 9.9-2.4c2.6 0 5 .3 7.2.9 2.2.6 4.3 1.4 6.1 2.4l.8 8.8-5.8.7-.8-5.7c-2.3-1-4.7-1.6-7.2-1.6-2.1 0-3.7.4-5.1 1.1-1.3.8-2 2-2 3.8 0 1.7.8 2.9 2.3 3.6 1.5.7 3.4 1.2 5.7 1.6 2.2.4 4.5.8 6.7 1.4 2.2.6 4.1 1.6 5.7 3 1.4 1.6 2.2 3.7 2.2 6.6zM197.6 73.2h-17.1v-5.5h3.8V51.9c0-3.7-.7-6.3-2.1-7.9-1.4-1.6-3.3-2.3-5.7-2.3-3.2 0-5.6 1.1-7.2 3.4s-2.4 4.6-2.5 6.9v15.6h6v5.5h-17.1v-5.5h3.8V51.9c0-3.8-.7-6.4-2.1-7.9-1.4-1.5-3.3-2.3-5.6-2.3-3.2 0-5.5 1.1-7.2 3.3-1.6 2.2-2.4 4.5-2.5 6.9v15.8h6.9v5.5h-20.2v-5.5h6V42.4h-6.1v-5.6h13.4v6.4c1.2-2.1 2.7-3.8 4.7-5.2 2-1.3 4.4-2 7.3-2s5.3.7 7.5 2.1c2.2 1.4 3.7 3.5 4.5 6.4 1.1-2.5 2.7-4.5 4.9-6.1s4.8-2.4 7.9-2.4c3.5 0 6.5 1.1 8.9 3.3s3.7 5.6 3.7 10.2v18.2h6.1v5.5zm42.5 0h-13.2V66c-1.2 2.2-2.8 4.1-4.9 5.6-2.1 1.6-4.8 2.4-8.3 2.4-4.8 0-8.7-1.6-11.6-4.9-2.9-3.2-4.3-7.7-4.3-13.3 0-5 1.3-9.6 4-13.7 2.6-4.1 6.9-6.2 12.8-6.2s9.8 2.2 12.3 6.5V22.7h-8.6v-5.6h15.8v50.6h6v5.5zm-13.3-16.8V52c-.1-3-1.2-5.5-3.2-7.3s-4.4-2.8-7.2-2.8c-3.6 0-6.3 1.3-8.2 3.9-1.9 2.6-2.8 5.8-2.8 9.6 0 4.1 1 7.3 3 9.5s4.5 3.3 7.4 3.3c3.2 0 5.8-1.3 7.8-3.8 2.1-2.6 3.1-5.3 3.2-8zm61.5 16.8H269v-5.5h6V51.9c0-3.7-.7-6.3-2.2-7.9-1.4-1.6-3.4-2.3-5.7-2.3-3.1 0-5.6 1-7.4 3s-2.8 4.4-2.9 7v15.9h6v5.5h-19.3v-5.5h6V42.4h-6.2v-5.6h13.6V43c2.6-4.6 6.8-6.9 12.7-6.9 3.6 0 6.7 1.1 9.2 3.3s3.7 5.6 3.7 10.2v18.2h6v5.4h-.2z" class="logo-text"></path></svg></a><button title="Open main menu" type="button" class="button action has-icon main-menu-toggle" aria-haspopup="menu" aria-label="Open main menu" aria-expanded="false"><span class="button-wrap"><span class="icon icon-menu "></span><span class="visually-hidden">Open main menu</span></span></button></div><div class="top-navigation-main"><nav class="main-nav" aria-label="Main menu"><ul class="main-menu nojs"><li class="top-level-entry-container "><button type="button" id="references-button" class="top-level-entry menu-toggle" aria-controls="references-menu" aria-expanded="false">References</button><a href="/ja/docs/Web" class="top-level-entry">References</a><ul id="references-menu" class="submenu references hidden inline-submenu-lg" aria-labelledby="references-button"><li class="apis-link-container mobile-only "><a href="/ja/docs/Web" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Overview / Web Technology</div><p class="submenu-item-description">Web technology reference for developers</p></div></a></li><li class="html-link-container "><a href="/ja/docs/Web/HTML" class="submenu-item "><div class="submenu-icon html"></div><div class="submenu-content-container"><div class="submenu-item-heading">HTML</div><p class="submenu-item-description">Structure of content on the web</p></div></a></li><li class="css-link-container "><a href="/ja/docs/Web/CSS" class="submenu-item "><div class="submenu-icon css"></div><div class="submenu-content-container"><div class="submenu-item-heading">CSS</div><p class="submenu-item-description">Code used to describe document style</p></div></a></li><li class="javascript-link-container "><a href="/ja/docs/Web/JavaScript" class="submenu-item "><div class="submenu-icon javascript"></div><div class="submenu-content-container"><div class="submenu-item-heading">JavaScript</div><p class="submenu-item-description">General-purpose scripting language</p></div></a></li><li class="http-link-container "><a href="/ja/docs/Web/HTTP" class="submenu-item "><div class="submenu-icon http"></div><div class="submenu-content-container"><div class="submenu-item-heading">HTTP</div><p class="submenu-item-description">Protocol for transmitting web resources</p></div></a></li><li class="apis-link-container "><a href="/ja/docs/Web/API" class="submenu-item "><div class="submenu-icon apis"></div><div class="submenu-content-container"><div class="submenu-item-heading">Web APIs</div><p class="submenu-item-description">Interfaces for building web applications</p></div></a></li><li class="apis-link-container "><a href="/ja/docs/Mozilla/Add-ons/WebExtensions" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Web Extensions</div><p class="submenu-item-description">Developing extensions for web browsers</p></div></a></li><li class="apis-link-container desktop-only "><a href="/ja/docs/Web" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Web Technology</div><p class="submenu-item-description">Web technology reference for developers</p></div></a></li></ul></li><li class="top-level-entry-container active"><button type="button" id="guides-button" class="top-level-entry menu-toggle" aria-controls="guides-menu" aria-expanded="false">Guides</button><a href="/ja/docs/Learn" class="top-level-entry">Guides</a><ul id="guides-menu" class="submenu guides hidden inline-submenu-lg" aria-labelledby="guides-button"><li class="apis-link-container mobile-only "><a href="/ja/docs/Learn" class="submenu-item "><div class="submenu-icon learn"></div><div class="submenu-content-container"><div class="submenu-item-heading">Overview / MDN Learning Area</div><p class="submenu-item-description">Learn web development</p></div></a></li><li class="apis-link-container desktop-only "><a href="/ja/docs/Learn" class="submenu-item "><div class="submenu-icon learn"></div><div class="submenu-content-container"><div class="submenu-item-heading">MDN Learning Area</div><p class="submenu-item-description">Learn web development</p></div></a></li><li class="html-link-container "><a href="/ja/docs/Learn/HTML" class="submenu-item "><div class="submenu-icon html"></div><div class="submenu-content-container"><div class="submenu-item-heading">HTML</div><p class="submenu-item-description">Learn to structure web content with HTML</p></div></a></li><li class="css-link-container "><a href="/ja/docs/Learn/CSS" class="submenu-item "><div class="submenu-icon css"></div><div class="submenu-content-container"><div class="submenu-item-heading">CSS</div><p class="submenu-item-description">Learn to style content using CSS</p></div></a></li><li class="javascript-link-container "><a href="/ja/docs/Learn/JavaScript" class="submenu-item "><div class="submenu-icon javascript"></div><div class="submenu-content-container"><div class="submenu-item-heading">JavaScript</div><p class="submenu-item-description">Learn to run scripts in the browser</p></div></a></li><li class=" "><a href="/ja/docs/Web/Accessibility" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Accessibility</div><p class="submenu-item-description">Learn to make the web accessible to all</p></div></a></li></ul></li><li class="top-level-entry-container "><button type="button" id="mdn-plus-button" class="top-level-entry menu-toggle" aria-controls="mdn-plus-menu" aria-expanded="false">Plus</button><a href="/ja/plus" class="top-level-entry">Plus</a><ul id="mdn-plus-menu" class="submenu mdn-plus hidden inline-submenu-lg" aria-labelledby="mdn-plus-button"><li class=" "><a href="/ja/plus" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Overview</div><p class="submenu-item-description">A customized MDN experience</p></div></a></li><li class=" "><a href="/ja/plus/ai-help" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">AI Help</div><p class="submenu-item-description">Get real-time assistance and support</p></div></a></li><li class=" "><a href="/ja/plus/updates" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Updates</div><p class="submenu-item-description">All browser compatibility updates at a glance</p></div></a></li><li class=" "><a href="/en-US/plus/docs/features/overview" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Documentation</div><p class="submenu-item-description">Learn how to use MDN Plus</p></div></a></li><li class=" "><a href="/en-US/plus/docs/faq" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">FAQ</div><p class="submenu-item-description">Frequently asked questions about MDN Plus</p></div></a></li></ul></li><li class="top-level-entry-container "><a class="top-level-entry menu-link" href="/en-US/curriculum/">Curriculum <sup class="new">New</sup></a></li><li class="top-level-entry-container "><a class="top-level-entry menu-link" href="/en-US/blog/">Blog</a></li><li class="top-level-entry-container "><button type="button" id="tools-button" class="top-level-entry menu-toggle" aria-controls="tools-menu" aria-expanded="false">Tools</button><ul id="tools-menu" class="submenu tools hidden inline-submenu-lg" aria-labelledby="tools-button"><li class=" "><a href="/ja/play" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">Playground</div><p class="submenu-item-description">Write, test and share your code</p></div></a></li><li class=" "><a href="/en-US/observatory" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">HTTP Observatory</div><p class="submenu-item-description">Scan a website for free</p></div></a></li><li class=" "><a href="/en-US/plus/ai-help" class="submenu-item "><div class="submenu-icon"></div><div class="submenu-content-container"><div class="submenu-item-heading">AI Help</div><p class="submenu-item-description">Get real-time assistance and support</p></div></a></li></ul></li></ul></nav><div class="header-search"><form action="/ja/search" class="search-form search-widget" id="top-nav-search-form" role="search"><label id="top-nav-search-label" for="top-nav-search-input" class="visually-hidden">Search MDN</label><input aria-activedescendant="" aria-autocomplete="list" aria-controls="top-nav-search-menu" aria-expanded="false" aria-labelledby="top-nav-search-label" autoComplete="off" id="top-nav-search-input" role="combobox" type="search" class="search-input-field" name="q" placeholder="   " required="" value=""/><button type="button" class="button action has-icon clear-search-button"><span class="button-wrap"><span class="icon icon-cancel "></span><span class="visually-hidden">Clear search input</span></span></button><button type="submit" class="button action has-icon search-button"><span class="button-wrap"><span class="icon icon-search "></span><span class="visually-hidden">Search</span></span></button><div id="top-nav-search-menu" role="listbox" aria-labelledby="top-nav-search-label"></div></form></div><div class="theme-switcher-menu"><button type="button" class="button action has-icon theme-switcher-menu small" aria-haspopup="menu"><span class="button-wrap"><span class="icon icon-theme-os-default "></span>Theme</span></button></div><ul class="auth-container"><li><a href="/users/fxa/login/authenticate/?next=%2Fja%2Fdocs%2FLearn%2FCSS%2FBuilding_blocks%2FCascade_and_inheritance" class="login-link" rel="nofollow">Log in</a></li><li><a href="/users/fxa/login/authenticate/?next=%2Fja%2Fdocs%2FLearn%2FCSS%2FBuilding_blocks%2FCascade_and_inheritance" target="_self" rel="nofollow" class="button primary mdn-plus-subscribe-link"><span class="button-wrap">Sign up for free</span></a></li></ul></div></div></header><div class="article-actions-container"><div class="container"><button type="button" class="button action has-icon sidebar-button" aria-label="Expand sidebar" aria-expanded="false" aria-controls="sidebar-quicklinks"><span class="button-wrap"><span class="icon icon-sidebar "></span></span></button><nav class="breadcrumbs-container" aria-label="Breadcrumb"><ol typeof="BreadcrumbList" vocab="https://schema.org/" aria-label="breadcrumbs"><li property="itemListElement" typeof="ListItem"><a href="/ja/docs/Learn" class="breadcrumb" property="item" typeof="WebPage"><span property="name">ウェブ開発を学ぶ</span></a><meta property="position" content="1"/></li><li property="itemListElement" typeof="ListItem"><a href="/ja/docs/Learn/CSS" class="breadcrumb" property="item" typeof="WebPage"><span property="name">CSS を用いた HTML のスタイル設定を学ぶ</span></a><meta property="position" content="2"/></li><li property="itemListElement" typeof="ListItem"><a href="/ja/docs/Learn/CSS/Building_blocks" class="breadcrumb" property="item" typeof="WebPage"><span property="name">CSS の構成要素</span></a><meta property="position" content="3"/></li><li property="itemListElement" typeof="ListItem"><a href="/ja/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" class="breadcrumb-current-page" property="item" typeof="WebPage"><span property="name">カスケード、詳細度、継承</span></a><meta property="position" content="4"/></li></ol></nav><div class="article-actions"><button type="button" class="button action has-icon article-actions-toggle" aria-label="Article actions"><span class="button-wrap"><span class="icon icon-ellipses "></span><span class="article-actions-dialog-heading">Article Actions</span></span></button><ul class="article-actions-entries"><li class="article-actions-entry"><div class="languages-switcher-menu open-on-focus-within"><button id="languages-switcher-button" type="button" class="button action small has-icon languages-switcher-menu" aria-haspopup="menu"><span class="button-wrap"><span class="icon icon-language "></span>日本語</span></button><div class="hidden"><ul class="submenu language-menu " aria-labelledby="language-menu-button"><li class=" "><form class="submenu-item locale-redirect-setting"><div class="group"><label class="switch"><input type="checkbox" name="locale-redirect"/><span class="slider"></span><span class="label">Remember language</span></label><a href="https://github.com/orgs/mdn/discussions/739" rel="external noopener noreferrer" target="_blank" title="Enable this setting to automatically switch to this language when it&#x27;s available. (Click to learn more.)"><span class="icon icon-question-mark "></span></a></div></form></li><li class=" "><a data-locale="de" href="/de/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" class="button submenu-item"><span>Deutsch</span><span title="Diese Übersetzung ist Teil eines Experiments."><span class="icon icon-experimental "></span></span></a></li><li class=" "><a data-locale="en-US" href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" class="button submenu-item"><span>English (US)</span></a></li><li class=" "><a data-locale="es" href="/es/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" class="button submenu-item"><span>Español</span></a></li><li class=" "><a data-locale="fr" href="/fr/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" class="button submenu-item"><span>Français</span></a></li><li class=" "><a data-locale="ko" href="/ko/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" class="button submenu-item"><span>한국어</span></a></li><li class=" "><a data-locale="pt-BR" href="/pt-BR/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" class="button submenu-item"><span>Português (do Brasil)</span></a></li><li class=" "><a data-locale="ru" href="/ru/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" class="button submenu-item"><span>Русский</span></a></li><li class=" "><a data-locale="zh-CN" href="/zh-CN/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" class="button submenu-item"><span>中文 (简体)</span></a></li></ul></div></div></li></ul></div></div></div></div><div class="container"><div class="notecard localized-content-note"><p><a href="/ja/docs/MDN/Community/Contributing/Translated_content#アクティブなロケール">このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。</a></p></div></div><div class="main-wrapper"><div class="sidebar-container"><aside id="sidebar-quicklinks" class="sidebar" data-macro="LearnSidebar"><button type="button" class="button action backdrop" aria-label="Collapse sidebar"><span class="button-wrap"></span></button><nav aria-label="Related Topics" class="sidebar-inner"><header class="sidebar-actions"><section class="sidebar-filter-container"><div class="sidebar-filter "><label id="sidebar-filter-label" class="sidebar-filter-label" for="sidebar-filter-input"><span class="icon icon-filter"></span><span class="visually-hidden">Filter sidebar</span></label><input id="sidebar-filter-input" autoComplete="off" class="sidebar-filter-input-field false" type="text" placeholder="Filter" value=""/><button type="button" class="button action has-icon clear-sidebar-filter-button"><span class="button-wrap"><span class="icon icon-cancel "></span><span class="visually-hidden">Clear filter input</span></span></button></div></section></header><div class="sidebar-inner-nav"><div class="in-nav-toc"><div class="document-toc-container"><section class="document-toc"><header><h2 class="document-toc-heading">この記事では</h2></header><ul class="document-toc-list"><li class="document-toc-item "><a class="document-toc-link" href="#競合するルール">競合するルール</a></li><li class="document-toc-item "><a class="document-toc-link" href="#これらの概念がどう連携するか理解する">これらの概念がどう連携するか理解する</a></li><li class="document-toc-item "><a class="document-toc-link" href="#継承を理解する">継承を理解する</a></li><li class="document-toc-item "><a class="document-toc-link" href="#カスケードを理解する">カスケードを理解する</a></li><li class="document-toc-item "><a class="document-toc-link" href="#css_の位置の効果">CSS の位置の効果</a></li><li class="document-toc-item "><a class="document-toc-link" href="#スキルテスト">スキルテスト</a></li><li class="document-toc-item "><a class="document-toc-link" href="#まとめ">まとめ</a></li></ul></section></div></div><div class="sidebar-body"><ol><li class="section"><a href="/ja/docs/Learn/Getting_started_with_the_web">完全な初心者はこちらから!</a></li><li><details><summary>ウェブ入門</summary><ol><li><a href="/ja/docs/Learn/Getting_started_with_the_web">ウェブ入門</a></li><li><a href="/ja/docs/Learn/Getting_started_with_the_web/Installing_basic_software">基本的なソフトウェアのインストール</a></li><li><a href="/ja/docs/Learn/Getting_started_with_the_web/What_will_your_website_look_like">ウェブサイトをどんな外見にするか</a></li><li><a href="/ja/docs/Learn/Getting_started_with_the_web/Dealing_with_files">ファイルの扱い</a></li><li><a href="/ja/docs/Learn/Getting_started_with_the_web/HTML_basics">HTML の基本</a></li><li><a href="/ja/docs/Learn/Getting_started_with_the_web/CSS_basics">CSS の基本</a></li><li><a href="/ja/docs/Learn/Getting_started_with_the_web/JavaScript_basics">JavaScript の基本</a></li><li><a href="/ja/docs/Learn/Getting_started_with_the_web/Publishing_your_website">ウェブサイトの公開</a></li><li><a href="/ja/docs/Learn/Getting_started_with_the_web/How_the_Web_works">ウェブのしくみ</a></li></ol></details></li><li class="section"><a href="/ja/docs/Learn/HTML">HTML — ウェブの構造化</a></li><li><details><summary>HTML概論</summary><ol><li><a href="/ja/docs/Learn/HTML/Introduction_to_HTML">HTML 入門</a></li><li><a href="/ja/docs/Learn/HTML/Introduction_to_HTML/Getting_started">HTML を始めよう</a></li><li><a href="/ja/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML">ヘッド部には何が入る? HTML のメタデータ</a></li><li><a href="/ja/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals">HTML テキストの基礎</a></li><li><a href="/ja/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks">ハイパーリンクの作成</a></li><li><a href="/ja/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting">高度なテキスト整形</a></li><li><a href="/ja/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure">文書とウェブサイトの構造</a></li><li><a href="/ja/docs/Learn/HTML/Introduction_to_HTML/Debugging_HTML">HTML のデバッグ</a></li><li><a href="/ja/docs/Learn/HTML/Introduction_to_HTML/Marking_up_a_letter">手紙のマークアップ</a></li><li><a href="/ja/docs/Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content">コンテンツのページの構造化</a></li></ol></details></li><li><details><summary>マルチメディアと埋め込み</summary><ol><li><a href="/ja/docs/Learn/HTML/Multimedia_and_embedding">マルチメディアとその埋め込み</a></li><li><a href="/ja/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML">HTML の画像</a></li><li><a href="/ja/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content">動画と音声のコンテンツ</a></li><li><a href="/ja/docs/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies">object から iframe まで — その他の埋め込み技術</a></li><li><a href="/ja/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web">ウェブへのベクターグラフィックの追加</a></li><li><a href="/ja/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images">レスポンシブ画像</a></li><li><a href="/ja/docs/Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page">Mozilla のスプラッシュページ</a></li></ol></details></li><li><details><summary>HTML 表</summary><ol><li><a href="/ja/docs/Learn/HTML/Tables">HTML 表</a></li><li><a href="/ja/docs/Learn/HTML/Tables/Basics">HTML の表の基本</a></li><li><a href="/ja/docs/Learn/HTML/Tables/Advanced">HTML 表の高度な機能とアクセシビリティ</a></li><li><a href="/ja/docs/Learn/HTML/Tables/Structuring_planet_data">惑星データの構造化</a></li></ol></details></li><li class="section"><a href="/ja/docs/Learn/CSS">CSS — ウェブのスタイル設定</a></li><li><details><summary>CSS の第一歩</summary><ol><li><a href="/ja/docs/Learn/CSS/First_steps">CSS の第一歩</a></li><li><a href="/ja/docs/Learn/CSS/First_steps/What_is_CSS">CSS とは何か</a></li><li><a href="/ja/docs/Learn/CSS/First_steps/Getting_started">CSS 入門</a></li><li><a href="/ja/docs/Learn/CSS/First_steps/How_CSS_is_structured">CSS の構造</a></li><li><a href="/ja/docs/Learn/CSS/First_steps/How_CSS_works">CSS はどう働くか</a></li><li><a href="/ja/docs/Learn/CSS/First_steps/Styling_a_biography_page">経歴ページのスタイル設定</a></li></ol></details></li><li><details open=""><summary>CSS の構成要素</summary><ol><li><a href="/ja/docs/Learn/CSS/Building_blocks">CSS の構成要素</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Selectors">CSS セレクター</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">要素型、クラス、ID セレクター</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">属性セレクター</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">擬似クラスと擬似要素</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Selectors/Combinators">結合子</a></li><li><em><a href="/ja/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance" aria-current="page">カスケード、詳細度、継承</a></em></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Cascade_layers">カスケードレイヤー</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/The_box_model">ボックスモデル</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">背景と境界線</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">テキストの様々な方向の扱い</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Overflowing_content">要素のオーバーフロー</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Values_and_units">CSS の値と単位</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">CSS によるサイズ設定</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Images_media_form_elements">画像、メディア、フォーム要素</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Styling_tables">表のスタイル設定</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Advanced_styling_effects">ボックスの高度な効果</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Debugging_CSS">CSS のデバッグ</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Organizing">CSS の整理</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Fundamental_CSS_comprehension">基本的な CSS の理解</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/Creating_fancy_letterheaded_paper">美しいレターヘッド付きの便箋の作成</a></li><li><a href="/ja/docs/Learn/CSS/Building_blocks/A_cool_looking_box">かっこいいボックス</a></li></ol></details></li><li><details><summary>テキストの装飾</summary><ol><li><a href="/ja/docs/Learn/CSS/Styling_text">テキストの装飾</a></li><li><a href="/ja/docs/Learn/CSS/Styling_text/Fundamentals">基本的なテキストとフォントのスタイル設定</a></li><li><a href="/ja/docs/Learn/CSS/Styling_text/Styling_lists">リストの装飾</a></li><li><a href="/ja/docs/Learn/CSS/Styling_text/Styling_links">リンクのスタイル設定</a></li><li><a href="/ja/docs/Learn/CSS/Styling_text/Web_fonts">ウェブフォント</a></li><li><a href="/ja/docs/Learn/CSS/Styling_text/Typesetting_a_homepage">コミュニティスクールのホームページの組版</a></li></ol></details></li><li><details><summary>CSS レイアウト</summary><ol><li><a href="/ja/docs/Learn/CSS/CSS_layout">CSS レイアウト</a></li><li><a href="/ja/docs/Learn/CSS/CSS_layout/Introduction">CSS レイアウト入門</a></li><li><a href="/ja/docs/Learn/CSS/CSS_layout/Normal_Flow">通常フロー</a></li><li><a href="/ja/docs/Learn/CSS/CSS_layout/Flexbox">フレックスボックス</a></li><li><a href="/ja/docs/Learn/CSS/CSS_layout/Grids">グリッド</a></li><li><a href="/ja/docs/Learn/CSS/CSS_layout/Floats">浮動ボックス</a></li><li><a href="/ja/docs/Learn/CSS/CSS_layout/Positioning">位置指定</a></li><li><a href="/ja/docs/Learn/CSS/CSS_layout/Multiple-column_Layout">段組みレイアウト</a></li><li><a href="/ja/docs/Learn/CSS/CSS_layout/Responsive_Design">レスポンシブデザイン</a></li><li><a href="/ja/docs/Learn/CSS/CSS_layout/Media_queries">メディアクエリーの初心者向けガイド</a></li><li><a href="/ja/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods">過去のレイアウト方法</a></li><li><a href="/ja/docs/Learn/CSS/CSS_layout/Supporting_Older_Browsers">古いブラウザーの対応</a></li><li><a href="/ja/docs/Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension">基礎的なレイアウトの理解</a></li></ol></details></li><li class="section"><a href="/ja/docs/Learn/JavaScript">JavaScript — 動的クライアントサイドスクリプト</a></li><li><details><summary>JavaScript の第一歩</summary><ol><li><a href="/ja/docs/Learn/JavaScript/First_steps">JavaScript の第一歩</a></li><li><a href="/ja/docs/Learn/JavaScript/First_steps/What_is_JavaScript">JavaScript とは</a></li><li><a href="/ja/docs/Learn/JavaScript/First_steps/A_first_splash">JavaScript の最初の一歩</a></li><li><a href="/ja/docs/Learn/JavaScript/First_steps/What_went_wrong">何が間違っている? JavaScript のトラブルシューティング</a></li><li><a href="/ja/docs/Learn/JavaScript/First_steps/Variables">必要な情報を保管する — 変数</a></li><li><a href="/ja/docs/Learn/JavaScript/First_steps/Math">JavaScript での基本演算 — 数値と演算子</a></li><li><a href="/ja/docs/Learn/JavaScript/First_steps/Strings">テキストの扱い — JavaScript での文字列</a></li><li><a href="/ja/docs/Learn/JavaScript/First_steps/Useful_string_methods">便利な文字列メソッド</a></li><li><a href="/ja/docs/Learn/JavaScript/First_steps/Arrays">配列</a></li><li><a href="/ja/docs/Learn/JavaScript/First_steps/Silly_story_generator">バカ話ジェネレーター</a></li></ol></details></li><li><details><summary>JavaScript の構成要素</summary><ol><li><a href="/ja/docs/Learn/JavaScript/Building_blocks">JavaScript の構成要素</a></li><li><a href="/ja/docs/Learn/JavaScript/Building_blocks/conditionals">コードでの意思決定 — 条件文</a></li><li><a href="/ja/docs/Learn/JavaScript/Building_blocks/Looping_code">ループするコード</a></li><li><a href="/ja/docs/Learn/JavaScript/Building_blocks/Functions">関数 — 再利用可能なコードブロック</a></li><li><a href="/ja/docs/Learn/JavaScript/Building_blocks/Build_your_own_function">独自の関数を作る</a></li><li><a href="/ja/docs/Learn/JavaScript/Building_blocks/Return_values">関数の返値</a></li><li><a href="/ja/docs/Learn/JavaScript/Building_blocks/Events">イベント入門</a></li><li><a href="/ja/docs/Learn/JavaScript/Building_blocks/Event_bubbling">イベントのバブリング</a></li><li><a href="/ja/docs/Learn/JavaScript/Building_blocks/Image_gallery">イメージギャラリー</a></li></ol></details></li><li><details><summary>JavaScript オブジェクトの紹介</summary><ol><li><a href="/ja/docs/Learn/JavaScript/Objects">JavaScript オブジェクト入門</a></li><li><a href="/ja/docs/Learn/JavaScript/Objects/Basics">JavaScript オブジェクトの基本</a></li><li><a href="/ja/docs/Learn/JavaScript/Objects/Object_prototypes">オブジェクトのプロトタイプ</a></li><li><a href="/ja/docs/Learn/JavaScript/Objects/Object-oriented_programming">オブジェクト指向プログラミング</a></li><li><a href="/ja/docs/Learn/JavaScript/Objects/Classes_in_JavaScript">JavaScript のクラス</a></li><li><a href="/ja/docs/Learn/JavaScript/Objects/JSON">JSON の操作</a></li><li><a href="/ja/docs/Learn/JavaScript/Objects/Object_building_practice">オブジェクト構築の練習</a></li><li><a href="/ja/docs/Learn/JavaScript/Objects/Adding_bouncing_balls_features">バウンスボールのデモに機能を追加する</a></li></ol></details></li><li><details><summary>非同期 JavaScript</summary><ol><li><a href="/ja/docs/Learn/JavaScript/Asynchronous">非同期 JavaScript</a></li><li><a href="/ja/docs/Learn/JavaScript/Asynchronous/Introducing">非同期 JavaScript 入門</a></li><li><a href="/ja/docs/Learn/JavaScript/Asynchronous/Promises">プロミスの使い方</a></li><li><a href="/ja/docs/Learn/JavaScript/Asynchronous/Implementing_a_promise-based_API">プロミスベースの API の実装方法</a></li><li><a href="/ja/docs/Learn/JavaScript/Asynchronous/Introducing_workers">ワーカー入門</a></li><li><a href="/ja/docs/Learn/JavaScript/Asynchronous/Sequencing_animations">アニメーションを順番に再生する</a></li></ol></details></li><li><details><summary>クライアントサイド Web API</summary><ol><li><a href="/ja/docs/Learn/JavaScript/Client-side_web_APIs">クライアントサイド Web API</a></li><li><a href="/ja/docs/Learn/JavaScript/Client-side_web_APIs/Introduction">Web API の紹介</a></li><li><a href="/ja/docs/Learn/JavaScript/Client-side_web_APIs/Manipulating_documents">文書の操作</a></li><li><a href="/ja/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data">サーバーからのデータ取得</a></li><li><a href="/ja/docs/Learn/JavaScript/Client-side_web_APIs/Third_party_APIs">サードパーティ API</a></li><li><a href="/ja/docs/Learn/JavaScript/Client-side_web_APIs/Drawing_graphics">グラフィックの描画</a></li><li><a href="/ja/docs/Learn/JavaScript/Client-side_web_APIs/Video_and_audio_APIs">動画と音声の API</a></li><li><a href="/ja/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage">クライアント側ストレージ</a></li></ol></details></li><li class="section"><a href="/ja/docs/Learn/Forms">ウェブフォーム — ユーザーデータの操作</a></li><li><details><summary>ウェブフォームの構成要素</summary><ol><li><a href="/ja/docs/Learn/Forms">ウェブフォームの構成要素</a></li><li><a href="/ja/docs/Learn/Forms/Your_first_form">初めてのフォーム</a></li><li><a href="/ja/docs/Learn/Forms/How_to_structure_a_web_form">フォームの構築方法</a></li><li><a href="/ja/docs/Learn/Forms/Basic_native_form_controls">基本的なネイティブフォームコントロール</a></li><li><a href="/ja/docs/Learn/Forms/HTML5_input_types">HTML5 の入力型</a></li><li><a href="/ja/docs/Learn/Forms/Other_form_controls">その他のフォームコントロール</a></li><li><a href="/ja/docs/Learn/Forms/Styling_web_forms">ウェブフォームへのスタイル設定</a></li><li><a href="/ja/docs/Learn/Forms/Advanced_form_styling">フォームへの高度なスタイル設定</a></li><li><a href="/ja/docs/Learn/Forms/UI_pseudo-classes">UI 擬似クラス</a></li><li><a href="/ja/docs/Learn/Forms/Form_validation">クライアント側のフォーム検証</a></li><li><a href="/ja/docs/Learn/Forms/Sending_and_retrieving_form_data">フォームデータの送信</a></li></ol></details></li><li><details><summary>高度なウェブフォームテクニック</summary><ol><li><a href="/ja/docs/Learn/Forms/How_to_build_custom_form_controls">カスタムフォームコントロールの作成方法</a></li><li><a href="/ja/docs/Learn/Forms/Sending_forms_through_JavaScript">JavaScript によるフォームの送信</a></li><li><a href="/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls">フォームコントロール向けの CSS プロパティの互換性一覧表</a></li><li><a href="/ja/docs/Learn/Forms/HTML_forms_in_legacy_browsers">古いブラウザーでの HTML フォーム</a></li></ol></details></li><li class="section"><a href="/ja/docs/Learn/Accessibility">アクセシビリティ — 誰もウェブを利用できるようにする</a></li><li><details><summary>アクセシビリティガイド</summary><ol><li><a href="/ja/docs/Learn/Accessibility">アクセシビリティ</a></li><li><a href="/ja/docs/Learn/Accessibility/What_is_accessibility">アクセシビリティとは</a></li><li><a href="/ja/docs/Learn/Accessibility/HTML">HTML: アクセシビリティの良き基本</a></li><li><a href="/ja/docs/Learn/Accessibility/CSS_and_JavaScript">CSS と JavaScript のアクセシビリティのベストプラクティス</a></li><li><a href="/ja/docs/Learn/Accessibility/WAI-ARIA_basics">WAI-ARIA の基本</a></li><li><a href="/ja/docs/Learn/Accessibility/Multimedia">アクセシブルなマルチメディア</a></li><li><a href="/ja/docs/Learn/Accessibility/Mobile">モバイルのアクセシビリティ</a></li><li><a href="/ja/docs/Learn/Accessibility/Accessibility_troubleshooting">評価: アクセシビリティのトラブルシューティング</a></li></ol></details></li><li class="section"><a href="/ja/docs/Learn/Performance">パフォーマンス — ウェブサイトを高速かつ応答性の高いものにする</a></li><li><details><summary>パフォーマンスガイド</summary><ol><li><a href="/ja/docs/Learn/Performance">ウェブパフォーマンス</a></li><li><a href="/ja/docs/Learn/Performance/why_web_performance">ウェブパフォーマンスの「なぜ」</a></li><li><a href="/ja/docs/Learn/Performance/What_is_web_performance">ウェブパフォーマンスとは</a></li><li><a href="/ja/docs/Learn/Performance/Perceived_performance">知覚的パフォーマンス</a></li><li><a href="/ja/docs/Learn/Performance/Measuring_performance">パフォーマンスの測定</a></li><li><a href="/ja/docs/Learn/Performance/Multimedia">マルチメディア: 画像</a></li><li><a href="/ja/docs/Learn/Performance/video">マルチメディア: 動画</a></li><li><a href="/ja/docs/Learn/Performance/JavaScript">JavaScript のパフォーマンス</a></li><li><a href="/ja/docs/Learn/Performance/HTML">HTML のパフォーマンス機能</a></li><li><a href="/ja/docs/Learn/Performance/CSS">CSS のパフォーマンス最適化</a></li><li><a href="/ja/docs/Learn/Performance/business_case_for_performance">ウェブパフォーマンスのビジネスケース</a></li></ol></details></li><li class="section"><a href="/ja/docs/Learn/MathML">MathML — MathML を使用して数学を記述する</a></li><li><details><summary>MathML の最初のステップ</summary><ol><li><a href="/ja/docs/Learn/MathML/First_steps">MathML 第一歩の概要</a></li><li><a href="/ja/docs/Learn/MathML/First_steps/Getting_started">MathML を始めよう</a></li><li><a href="/ja/docs/Learn/MathML/First_steps/Text_containers">MathML テキストコンテナー</a></li><li><a href="/ja/docs/Learn/MathML/First_steps/Fractions_and_roots">MathML 分数と根号</a></li><li><a href="/ja/docs/Learn/MathML/First_steps/Scripts">MathML 添字要素</a></li><li><a href="/ja/docs/Learn/MathML/First_steps/Tables">MathML 表</a></li><li><a href="/ja/docs/Learn/MathML/First_steps/Three_famous_mathematical_formulas">三大数式</a></li></ol></details></li><li class="section"><a href="/ja/docs/Learn/../Games">ゲーム — ウェブ用ゲームの開発</a></li><li><details><summary>ガイドとチュートリアル</summary><ol><li><a href="/ja/docs/Games/Introduction">ウェブ用のゲーム開発入門</a></li><li><a href="/ja/docs/Games/Techniques">ゲーム開発テクニック</a></li><li><a href="/ja/docs/Games/Tutorials">チュートリアル</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Games/Publishing_games">Publishing games</a></li></ol></details></li><li class="section"><a href="/ja/docs/Learn/Tools_and_testing">ツールとテスト</a></li><li><details><summary>クライアントサイドウェブ開発ツール</summary><ol><li><a href="/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools">クライアントサイドウェブ開発ツールの理解</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview">クライアントサイドツールの概要</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line">コマンドライン短期集中講座</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Package_management">パッケージ管理の基本</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Introducing_complete_toolchain">完全なツールチェーンの導入</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Deployment">アプリのデプロイ</a></li></ol></details></li><li><details><summary>クライアントサイドフレームワークの概要</summary><ol><li><a href="/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Introduction">クライアントサイドフレームワークの概要</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Main_features">フレームワークの主な機能</a></li></ol></details></li><li><details><summary>React</summary><ol><li><a href="/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started">React を始める</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_todo_list_beginning">React ToDoリストをはじめる</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_components">React アプリのコンポーネント化</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_interactivity_events_state">React interactivity: Events and state</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_interactivity_filtering_conditional_rendering">React interactivity: Editing, filtering, conditional rendering</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_accessibility">Accessibility in React</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_resources">React のリソース</a></li></ol></details></li><li><details><summary>Ember</summary><ol><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_getting_started">Getting started with Ember</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_structure_componentization">Ember app structure and componentization</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_interactivity_events_state">Ember interactivity: Events, classes and state</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_conditional_footer">Ember Interactivity: Footer functionality, conditional rendering</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_routing">Routing in Ember</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_resources">Ember resources and troubleshooting</a></li></ol></details></li><li><details><summary>Vue</summary><ol><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started">Getting started with Vue</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_first_component">Creating our first Vue component</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_rendering_lists">Rendering a list of Vue components</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_methods_events_models">Adding a new todo form: Vue events, methods, and models</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_styling">Styling Vue components with CSS</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_computed_properties">Using Vue computed properties</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_conditional_rendering">Vue conditional rendering: editing existing todos</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_refs_focus_management">Vue refs and lifecycle methods for focus management</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_resources">Vue resources</a></li></ol></details></li><li><details><summary>Svelte</summary><ol><li><a href="/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_getting_started">Svelte をはじめる</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_Todo_list_beginning">Starting our Svelte to-do list app</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_variables_props">Dynamic behavior in Svelte: working with variables and props</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_components">Componentizing our Svelte app</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_reactivity_lifecycle_accessibility">Advanced Svelte: Reactivity, lifecycle, accessibility</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_stores">Working with Svelte stores</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_TypeScript">TypeScript support in Svelte</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_deployment_next">Deployment and next steps</a></li></ol></details></li><li><details><summary>Angular</summary><ol><li><a href="/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_getting_started">Angular をはじめる</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_todo_list_beginning">Angular todo リストアプリの事始め</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_styling">Angular アプリのスタイリング</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_item_component">item コンポーネントの作成</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_filtering">To Do アイテムのフィルタリング</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_building">Angular アプリケーションのビルドとその他のリソース</a></li></ol></details></li><li><details><summary>Git と GitHub</summary><ol><li><a href="/ja/docs/Learn/Tools_and_testing/GitHub">Git と GitHub</a></li></ol></details></li><li><details><summary>ブラウザー横断テスト</summary><ol><li><a href="/ja/docs/Learn/Tools_and_testing/Cross_browser_testing">ブラウザー横断テスト</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/Introduction">はじめてのブラウザー横断テスト</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/Testing_strategies">テスト実行のための戦略</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS">一般的な HTML と CSS の問題への対処</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/JavaScript">よくある JavaScript の問題の扱い</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility">よくあるアクセシビリティの問題を扱う</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/Feature_detection">機能検出の実装</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/Automated_testing">自動化テストの紹介</a></li><li><a href="/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/Your_own_automation_environment">テスト自動化環境のセットアップ</a></li></ol></details></li><li class="section"><a href="/ja/docs/Learn/Server-side">サーバーサイドウェブサイトプログラミング</a></li><li><details><summary>サーバーサイドのウェブサイトプログラミングの第一歩</summary><ol><li><a href="/ja/docs/Learn/Server-side/First_steps">サーバーサイドのウェブサイトプログラミングの第一歩</a></li><li><a href="/ja/docs/Learn/Server-side/First_steps/Introduction">サーバーサイドの概要</a></li><li><a href="/ja/docs/Learn/Server-side/First_steps/Client-Server_overview">クライアント・サーバーの概要</a></li><li><a href="/ja/docs/Learn/Server-side/First_steps/Web_frameworks">サーバーサイドウェブフレームワーク</a></li><li><a href="/ja/docs/Learn/Server-side/First_steps/Website_security">ウェブサイトのセキュリティ</a></li></ol></details></li><li><details><summary>Django ウェブフレームワーク (Python)</summary><ol><li><a href="/ja/docs/Learn/Server-side/Django">Django ウェブフレームワーク (Python)</a></li><li><a href="/ja/docs/Learn/Server-side/Django/Introduction">Django の紹介</a></li><li><a href="/ja/docs/Learn/Server-side/Django/development_environment">Django 開発環境の設定</a></li><li><a href="/ja/docs/Learn/Server-side/Django/Tutorial_local_library_website">Django チュートリアル: 地域図書館ウェブサイト</a></li><li><a href="/ja/docs/Learn/Server-side/Django/skeleton_website">Django チュートリアル Part 2: スケルトンウェブサイトの作成</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Server-side/Django/Models">Django Tutorial Part 3: Using models</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Server-side/Django/Admin_site">Django Tutorial Part 4: Django admin site</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Server-side/Django/Home_page">Django Tutorial Part 5: Creating our home page</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Server-side/Django/Generic_views">Django Tutorial Part 6: Generic list and detail views</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Server-side/Django/Sessions">Django Tutorial Part 7: Sessions framework</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Server-side/Django/Authentication">Django Tutorial Part 8: User authentication and permissions</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Server-side/Django/Forms">Django Tutorial Part 9: Working with forms</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Server-side/Django/Testing">Django Tutorial Part 10: Testing a Django web application</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Server-side/Django/Deployment">Django Tutorial Part 11: Deploying Django to production</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Server-side/Django/web_application_security">Django web application security</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Server-side/Django/django_assessment_blog">Assessment: DIY Django mini blog</a></li></ol></details></li><li><details><summary>Express ウェブフレームワーク (Node.js/JavaScript)</summary><ol><li><a href="/ja/docs/Learn/Server-side/Express_Nodejs">Express ウェブフレームワーク (Node.js/JavaScript)</a></li><li><a href="/ja/docs/Learn/Server-side/Express_Nodejs/Introduction">Express/Node の紹介</a></li><li><a href="/ja/docs/Learn/Server-side/Express_Nodejs/development_environment">Node 開発環境の設定</a></li><li><a href="/ja/docs/Learn/Server-side/Express_Nodejs/Tutorial_local_library_website">Express チュートリアル: 地域図書館のウェブサイト</a></li><li><a href="/ja/docs/Learn/Server-side/Express_Nodejs/skeleton_website">Express チュートリアル Part 2: スケルトンウェブサイトの作成</a></li><li><a href="/ja/docs/Learn/Server-side/Express_Nodejs/mongoose">Express チュートリアル Part 3: データベースの使用 (Mongoose を使用)</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Server-side/Express_Nodejs/routes">Express Tutorial Part 4: Routes and controllers</a></li><li><a href="/ja/docs/Learn/Server-side/Express_Nodejs/Displaying_data">Express チュートリアル Part 5: ライブラリーデータの表示</a></li><li><a href="/ja/docs/Learn/Server-side/Express_Nodejs/forms">Express チュートリアル Part 6: フォームの操作</a></li><li><a class="only-in-en-us" title="このページは現在、英語のみで利用可能です。" href="/en-US/docs/Learn/Server-side/Express_Nodejs/deployment">Express Tutorial Part 7: Deploying to production</a></li></ol></details></li><li class="section"><a href="/ja/docs/Learn/Common_questions">その他のリソース</a></li><li><details><summary>よくある質問</summary><ol><li><a href="/ja/docs/Learn/Common_questions">よくある質問</a></li><li><a href="/ja/docs/Learn/HTML/Howto">HTML を使ってよくある問題を解決する</a></li><li><a href="/ja/docs/Learn/CSS/Howto">CSS を使ってよくある問題を解決する</a></li><li><a href="/ja/docs/Learn/JavaScript/Howto">JavaScript のコードのよくある問題を解決する</a></li><li><a href="/ja/docs/Learn/Common_questions/Web_mechanics">ウェブの仕組み</a></li><li><a href="/ja/docs/Learn/Common_questions/Tools_and_setup">ツールとセットアップ</a></li><li><a href="/ja/docs/Learn/Common_questions/Design_and_accessibility">デザインとアクセシビリティ</a></li></ol></details></li></ol></div></div><section class="place side"></section></nav></aside><div class="toc-container"><aside class="toc"><nav><div class="document-toc-container"><section class="document-toc"><header><h2 class="document-toc-heading">この記事では</h2></header><ul class="document-toc-list"><li class="document-toc-item "><a class="document-toc-link" href="#競合するルール">競合するルール</a></li><li class="document-toc-item "><a class="document-toc-link" href="#これらの概念がどう連携するか理解する">これらの概念がどう連携するか理解する</a></li><li class="document-toc-item "><a class="document-toc-link" href="#継承を理解する">継承を理解する</a></li><li class="document-toc-item "><a class="document-toc-link" href="#カスケードを理解する">カスケードを理解する</a></li><li class="document-toc-item "><a class="document-toc-link" href="#css_の位置の効果">CSS の位置の効果</a></li><li class="document-toc-item "><a class="document-toc-link" href="#スキルテスト">スキルテスト</a></li><li class="document-toc-item "><a class="document-toc-link" href="#まとめ">まとめ</a></li></ul></section></div></nav></aside><section class="place side"></section></div></div><main id="content" class="main-content "><article class="main-page-content" lang="ja"><header><h1>カスケード、詳細度、継承</h1></header><div class="section-content"><ul class="prev-next"> <li><a class="button secondary" href="/ja/docs/Learn/CSS/Building_blocks/Selectors/Combinators"><span class="button-wrap"> 前のページ </span></a></li> <li><a class="button secondary" href="/ja/docs/Learn/CSS/Building_blocks"><span class="button-wrap"> Overview: CSS の構成要素</span></a></li> <li><a class="button secondary" href="/ja/docs/Learn/CSS/Building_blocks/Cascade_layers"><span class="button-wrap"> 次のページ </span></a></li> </ul> <p>このレッスンの目的は、CSS の最も基本的な概念であるカスケード、詳細度、継承について理解を深めることです。これらの概念は、CSS を HTML に適用する方法とスタイル宣言の間の競合を解決する方法を制御するものです。</p> <p>このレッスンは、他の記事よりもすぐに役立つことが少なく、少し学問的に見えるかもしれませんが、これらの概念を理解することは、後で多くの困難から救ってくれることでしょう。この章を注意深く作業し、概念を理解していることを確認してから、次に進むことをお勧めします。</p> <figure class="table-container"><table> <tbody> <tr> <th scope="row">前提条件:</th> <td><a href="/ja/docs/Learn/Getting_started_with_the_web/Installing_basic_software">基本的なソフトウェアがインストールされている</a>こと、<a href="/ja/docs/Learn/Getting_started_with_the_web/Dealing_with_files">ファイルの扱い</a>、HTML の基本(<a href="/ja/docs/Learn/HTML/Introduction_to_HTML">HTML 入門</a>の学習)、CSS がどのように動作するかの考え(<a href="/ja/docs/Learn/CSS/First_steps">CSS の第一歩</a>で学習)の基本的な知識を得ていること。</td> </tr> <tr> <th scope="row">目的:</th> <td>カスケードと詳細度、および CSS の継承の仕組みについて学ぶ。</td> </tr> </tbody> </table></figure></div><section aria-labelledby="競合するルール"><h2 id="競合するルール"><a href="#競合するルール">競合するルール</a></h2><div class="section-content"><p>CSS は <strong>Cascading Style Sheets</strong> の略で、最初の単語であるカスケード (<em>cascading</em>) を理解することは非常に重要です。カスケードのふるまいは、CSS を理解するための鍵となりえます。</p> <p>プロジェクトに取り組んでいるとき、要素に適用されているはずの CSS が機能していないと感じることがあります。大抵の場合、この問題は同じ要素に適用される可能性のある 2 つ のルールを作ってしまったことが原因です。<a href="/ja/docs/Web/CSS/Cascade"><strong>カスケード</strong></a>および、それと密接に関連する<a href="/ja/docs/Web/CSS/Specificity"><strong>詳細度</strong></a>の概念は、そのような競合が存在する際にどちらのルールを適用するかを制御するメカニズムです。実際に要素にスタイルを設定しているルールがどれなのかは期待と異なる場合があるため、このような仕組みがどのように動作するのかを理解しておく必要があります。</p> <p>このほかに重要なのは<a href="/ja/docs/Web/CSS/Inheritance"><strong>継承</strong></a>という概念です。CSS プロパティによって、親要素の値を既定で継承するものもあれば、継承しないものもあります。これにより、予期しない動作が発生する可能性もあります。</p> <p>まず重要なものを簡単に見てみましょう。それぞれ順に追っていって CSS でどのように相互作用するかを見ていきます。これらはトリッキーな概念のように見えるかもしれませんが、CSS を書く練習を積んでいくと、その動作が明らかになってくるでしょう。</p></div></section><section aria-labelledby="カスケード"><h3 id="カスケード"><a href="#カスケード">カスケード</a></h3><div class="section-content"><p>スタイルシートの<a href="/ja/docs/Web/CSS/Cascade"><strong>カスケード</strong></a>は、とてもシンプルに考えるなら、これは発生元と、カスケードレイヤーと、CSS ルールの順序によるということです。同じカスケードレイヤーからの 2 つのルールが適用されており、どちらも詳細度が同じである場合、スタイルシートで最後に定義されたものが使用されます。</p> <p>下記の例では、<code>&lt;h1&gt;</code> 要素に適用できる 2 つのルールがあります。<code>&lt;h1&gt;</code> のコンテンツは結果的に青く色づけされています。これは、どちらのルールも同じソースにあり、同じ要素セレクターを持ち、したがって詳細度が同じですが、ソース上の順番が最後のものが勝者となるからです。</p><iframe width="100%" height="500" src="https://mdn.github.io/css-examples/learn/cascade/cascade-simple.html" loading="lazy"></iframe></div></section><section aria-labelledby="詳細度"><h3 id="詳細度"><a href="#詳細度">詳細度</a></h3><div class="section-content"><p><a href="/ja/docs/Web/CSS/Specificity">詳細度</a>とは、ある要素にどのプロパティの値を使用するかを決めるために、ブラウザーが使用するアルゴリズムです。複数のスタイルブロックに、同じプロパティを異なる値で設定する異なるセレクターがあり、同じ要素を対象としている場合、その要素に適用されるプロパティの値は、詳細度によって決定されます。詳細度とは、基本的にセレクターの選択がどの程度具体的であるかを示す指標です。</p> <ul> <li>要素セレクターは詳細度が低く、ページ上に現れるその種類のすべての要素を選択するので、あまり重みがありません。擬似要素セレクターは、通常の要素セレクターと同じ詳細度を持ちます。</li> <li>クラスセレクターはより詳細度が高く、ページ上にある特定の <code>class</code> 属性値を保有する要素のみを選択するので、より高い重みを持っています。属性セレクターと擬似クラスは、クラスと同じ重みを持ちます。</li> </ul> <p>下記の例では、再び <code>&lt;h1&gt;</code> 要素に適用できる 2 つのルールがあります。下記の <code>&lt;h1&gt;</code> のコンテンツは、クラスセレクター <code>main-heading</code> によりそのルールが高い詳細度を持つため、結果として赤で表示されています。たとえ、<code>&lt;h1&gt;</code> 要素のセレクターを使用したルールがソースの順序でより下に現れても、クラスセレクターを使用して定義された、より高い詳細度を持つルールが使用されることになります。</p><iframe width="100%" height="600" src="https://mdn.github.io/css-examples/learn/cascade/specificity-simple.html" loading="lazy"></iframe> <p>詳細度のアルゴリズムについては、後ほど説明します。</p></div></section><section aria-labelledby="継承"><h3 id="継承"><a href="#継承">継承</a></h3><div class="section-content"><p>ここでは継承についても理解する必要があります。親要素に設定された CSS プロパティ値には、子要素に継承されるものとそうでないものがあります。</p> <p>例えば、ある要素に <code>color</code> と <code>font-family</code> を設定すると、異なる色やフォントの値を直接適用しない限り、その中にあるすべての要素もその色やフォントでスタイル設定されます。</p><iframe width="100%" height="650" src="https://mdn.github.io/css-examples/learn/cascade/inheritance-simple.html" loading="lazy"></iframe> <p>いくつかのプロパティは継承されません。例えば、要素に <a href="/ja/docs/Web/CSS/width"><code>width</code></a> 50% と設定した場合、すべての子孫要素は親の幅の 50% の幅を取得しません。もしそんなことになるのら CSS を使うととてもイライラするでしょう。</p> <div class="notecard note"> <p><strong>メモ:</strong> MDN の CSS プロパティリファレンスページには、「公式定義」という技術情報ボックスがあり、そのプロパティに関するいくつかのデータポイント(継承されるかどうかなど)が記載されています。例として、<a href="/ja/docs/Web/CSS/color#%E5%85%AC%E5%BC%8F%E5%AE%9A%E7%BE%A9">color プロパティの公式定義の節</a>を参照してください。</p> </div></div></section><section aria-labelledby="これらの概念がどう連携するか理解する"><h2 id="これらの概念がどう連携するか理解する"><a href="#これらの概念がどう連携するか理解する">これらの概念がどう連携するか理解する</a></h2><div class="section-content"><p>これら3つの概念(カスケード、詳細度、継承)は、どの CSS がどの要素に適用されるかを制御するものです。以下の節では、これらがどのように連携して動作するのかを見ていきます。少し複雑に感じることもあるかもしれませんが、CSS を取得するにつれて覚え始めるでしょうし、忘れたときには常に詳細を調べておくことができます 経験豊富な開発者でも、すべての詳細を覚えているわけではありません。</p> <p>以下の動画は、Firefox の開発ツールを使用して、ページのカスケードや詳細度などを検査する方法を示しています。</p><iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/Sp9ZfSvpf7A" title="YouTube video" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" loading="lazy"></iframe></div></section><section aria-labelledby="継承を理解する"><h2 id="継承を理解する"><a href="#継承を理解する">継承を理解する</a></h2><div class="section-content"><p>継承から始めましょう。次の例では <a href="/ja/docs/Web/HTML/Element/ul"><code>&lt;ul&gt;</code></a> 要素があり、内部にさらに 2 つ のレベルの順序なしリストがネストされています。外側の <code>&lt;ul&gt;</code> に境界線、パディング、文字色が指定されています。</p> <p><code>color</code> プロパティは継承されるプロパティです。よって、<code>color</code> プロパティの値は直接の子だけでなく、間接的な子にも適用されています。つまり直接の子である <code>&lt;li&gt;</code> 、それに最初のネストされたリスト内のものにも適用されています。そして 2 番目 にネストされたリストに <code>special</code> クラスを追加し、別の色が適用されています。これは子に継承します。</p><iframe width="100%" height="1100" src="https://mdn.github.io/css-examples/learn/cascade/inheritance.html" loading="lazy"></iframe> <p>(前述のように)<code>width</code> や <code>margin</code> 、 <code>padding</code> 、 <code>border</code> といったプロパティは継承されるプロパティではありません。もし、このリストの例で境界線が子プロパティに掲載されていたら、すべてのリストとリスト項目に境界線が追加されることになります。</p> <p>CSS のプロパティのページには、そのプロパティが継承されるかどうかが掲載されていますが、プロパティの値がどのようなスタイルを設定するのかを知っていれば、直観的に同じことを推測できることが多いでしょう。</p></div></section><section aria-labelledby="継承の制御"><h3 id="継承の制御"><a href="#継承の制御">継承の制御</a></h3><div class="section-content"><p>CSS は、継承を制御するための 5 つ の特別なユニバーサルプロパティ値 <em>(universal property values)</em> を提供します。すべての CSS プロパティはこれらの値を受け入れます。</p> <dl> <dt id="inherit"><a href="/ja/docs/Web/CSS/inherit"><code>inherit</code></a></dt> <dd> <p>選択した要素に適用されるプロパティ値を、その親要素と同じものに設定します。これは「継承を有効にする」ことを意味します。</p> </dd> <dt id="initial"><a href="/ja/docs/Web/CSS/initial"><code>initial</code></a></dt> <dd> <p>選択した要素に適用されるプロパティ値を、そのプロパティの<a href="/ja/docs/Web/CSS/initial_value">初期値</a>に設定します。</p> </dd> <dt id="revert"><a href="/ja/docs/Web/CSS/revert"><code>revert</code></a></dt> <dd> <p>選択した要素に適用されるプロパティ値を、そのプロパティに適用されている既定値ではなく、ブラウザーの既定スタイル設定にリセットします。この値は、多くの場合 <a href="/ja/docs/Web/CSS/unset"><code>unset</code></a> のように動作します。</p> </dd> <dt id="revert-layer"><a href="/ja/docs/Web/CSS/revert-layer"><code>revert-layer</code></a></dt> <dd> <p>選択した要素に適用されるプロパティ値を、前回の<a href="/ja/docs/Web/CSS/@layer">カスケードレイヤー</a>で設定された値にリセットします。</p> </dd> <dt id="unset"><a href="/ja/docs/Web/CSS/unset"><code>unset</code></a></dt> <dd> <p>プロパティを自然な値にリセットします。つまり、プロパティが自然に継承される場合は <code>inherit</code> のように動作し、そうでない場合は <code>initial</code> のように動作します。</p> </dd> </dl> <div class="notecard note"> <p><strong>メモ:</strong> それぞれについて、またこれらがどのように動作するのかについては、<a href="/ja/docs/Web/CSS/Cascade#%E3%82%AA%E3%83%AA%E3%82%B8%E3%83%B3%E3%81%AE%E7%A8%AE%E9%A1%9E">オリジンの種類</a>を参照してください。</p> </div> <p>リンクのリストを見ると、ユニバーサル値 (universal values) がどのように機能するかを調べることができます。以下のライブサンプルでは、CSS に変更を加えて何が起こるかを確認できます。HTML と CSS を理解するには、実際にコードを試すのが最善の方法です。</p> <p>例えば次のようになります。</p> <ol> <li>2 番目 のリストアイテムには、<code>my-class-1</code> が適用されています。これは、内部にネストされた <code>&lt;a&gt;</code> 要素に色を継承 (<code>inherit</code>) します。ルールを削除すると、リンクの色はどのように変わるでしょうか?</li> <li>3 つ目と 4 つ目のリンクがなぜそのような色になっているのか、お分かりでしょうか? 3 つ目のリンクは <code>initial</code> に設定されています。これはプロパティの初期値(この場合は黒)を使用し、ブラウザーのリンクの既定値である青は使用しない、という意味です。4 番目のリンクは <code>unset</code> に設定されており、これはリンクテキストが親要素の色である緑を使用することを意味しています。</li> <li><code>&lt;a&gt;</code> 要素に新しい色を定義した場合、どのリンクの色が変わるでしょうか。例えば、<code>a { color: red; }</code> のようにした場合です。</li> <li>次の節の「すべてのプロパティ値のリセット」を読んだ後、また戻ってきて <code>color</code> プロパティを <code>all</code> に変更してみてください。2 つ目のリンクが新しい行になり、箇条書きがあることに注目してください。どのようなプロパティが継承されていると思いますか?</li> </ol><iframe width="100%" height="800" src="https://mdn.github.io/css-examples/learn/cascade/keywords.html" loading="lazy"></iframe></div></section><section aria-labelledby="すべてのプロパティ値のリセット"><h3 id="すべてのプロパティ値のリセット"><a href="#すべてのプロパティ値のリセット">すべてのプロパティ値のリセット</a></h3><div class="section-content"><p>CSS の一括指定プロパティ <a href="/ja/docs/Web/CSS/all"><code>all</code></a> を使用して、これらの継承値の 1 つ を(ほぼ)すべてのプロパティに一度に適用できます。その値として、いずれかの継承値(<code>inherit</code>、<code>initial</code>、<code>revert</code>、<code>revert-layer</code>、<code>unset</code> のいずれか)を指定することができます。新しく変更を開始する際、既知の開始点に戻ることができるように、変更されたスタイルを元に戻す便利な方法です。</p> <p>以下の例では 2 つ のブロック引用 (blockquote) 要素があります。最初のスタイルは blockquote 要素自体に適用されます。2 つ目には <code>all</code> に <code>unset</code> を設定するように blockquote に適用されるクラスがあります。</p><iframe width="100%" height="800" src="https://mdn.github.io/css-examples/learn/cascade/all.html" loading="lazy"></iframe> <p><code>all</code> の値を他の有効な値に設定してみて、違いを観察してみてください。</p></div></section><section aria-labelledby="カスケードを理解する"><h2 id="カスケードを理解する"><a href="#カスケードを理解する">カスケードを理解する</a></h2><div class="section-content"><p>これで、HTML の構造の奥深くにある段落が、本体に適用されている CSS と同じ色になるのは、継承のためだということが理解できたと思います。入門編で、文書内の任意の場所で何かに適用される CSS を変更する方法について理解しました。 CSS を要素に割り当てるか、クラスを作成するかです。これで、複数のスタイルブロックが同じ要素に異なる形で同じプロパティを適用する場合、どの CSS ルールが適用されるかをカスケードで定義する方法を見て取ることができます。</p> <p>考慮すべき 3 つ の要因がありますが、ここでは重要度の高い順にリストしています。前にあるものは、後のものを無効にします。</p> <ol> <li><strong>ソース順</strong> (Source order)</li> <li><strong>詳細度</strong> (Specificity)</li> <li><strong>重要度</strong> (Importance)</li> </ol> <p>これらを下から順に、ブラウザーがどうやって CSS を適用しているのかを見ていきましょう。</p></div></section><section aria-labelledby="ソース順"><h3 id="ソース順"><a href="#ソース順">ソース順</a></h3><div class="section-content"><p>ソース順がカスケードにとって重要であることは、既に見たとおりです。複数のルールを保有し、それらのルールがすべてまったく同じ重みを持っている場合、CSS の最後に来るルールが優先されます。これは、要素自体に近いルールが、最後のルールが勝利して要素のスタイルを取得するまで、前のルールを上書きすると考えることができます。</p> <p>ソース順が問題になるのは、ルールの詳細度に対する重みが同じである場合だけなので、詳細度について考えてみましょう。</p></div></section><section aria-labelledby="詳細度_2"><h3 id="詳細度_2"><a href="#詳細度_2">詳細度</a></h3><div class="section-content"><p>あるルールがスタイルシートの後半に来ることは分かっていても、より前の、競合するルールが適用される状況がよくあります。これは、前のルールが <strong>より高い詳細度</strong> を有しているため、つまり、より詳細であるため、ブラウザーが要素をスタイル設定すべきものとして選択した場合に起こります。</p> <p>このレッスンで以前に見たように、クラスセレクターは要素セレクターよりも重みがあるため、クラスのスタイルブロックで定義されたプロパティは、要素のスタイルブロックで定義されたものを上書きすることになります。</p> <p>ここで注意したいのは、セレクターとそれが選択するテキストや成分に適用されるルールに注目していますが、上書きされるのはルール全体ではなく、複数の場所で宣言されているプロパティだけだということです。</p> <p>この動作は、CSS の繰り返しを避けるのに役立ちます。一般的な方法としては、基本的な要素には一般的なスタイルを定義し、異なる形の要素にはクラスを作成することです。例えば、下記のスタイルシートでは、レベル 2 の見出しに対して一般的なスタイルを定義し、その後、一部のプロパティと値のみを変更するクラスをいくつか作成しています。最初に定義された値はすべての見出しに適用され、その後、より詳細度の高い値がクラスを持つ見出しに適用されます。</p><iframe width="100%" height="1000" src="https://mdn.github.io/css-examples/learn/cascade/mixing-rules.html" loading="lazy"></iframe> <p>ブラウザーが詳細度を計算する方法を見てみましょう。要素セレクターの詳細度は低く、クラスで上書きできることはすでにわかったはずです。基本的に、セレクターの重みはポイント単位の値で与えられ、これらを合計して特定セレクターの重みが与えられて、他の一致するものと相対して評価することができます。</p> <p>セレクターが持つ詳細度の量は、3 つ の異なる値(またはコンポーネント)を使用して測定されます。これは、ID、クラス、要素の列を、それぞれ百の位、十の位、一の位として考えることができます。</p> <ul> <li><strong>ID</strong>: この列は、全体のセレクターの中に含まれるそれぞれの ID セレクターに対して 1 点ずつ評価します。</li> <li><strong>クラス</strong>: この列は、クラスセレクター、属性セレクター、擬似クラスが全体のセレクターの中に含まれている場合に 1 点ずつ評価します。</li> <li><strong>要素</strong>: この列は、要素セレクターまたは擬似要素が全体のセレクターの中に含まれている場合に 1 点ずつ評価します。</li> </ul> <div class="notecard note"> <p><strong>メモ:</strong> 全称セレクター (<a href="/ja/docs/Web/CSS/Universal_selectors"><code>*</code></a>)、<a href="/ja/docs/Learn/CSS/Building_blocks/Selectors/Combinators">結合子</a> (<code>+</code>、<code>&gt;</code>、<code>~</code>、' ')、詳細度調整セレクター<a href="/ja/docs/Web/CSS/:where"><code>:where()</code></a>とその引数は、詳細度に影響しません。</p> </div> <p>否定 (<a href="/ja/docs/Web/CSS/:not"><code>:not()</code></a>)、関係セレクター (<a href="/ja/docs/Web/CSS/:has"><code>:has()</code></a>)、match-any (<a href="/ja/docs/Web/CSS/:is"><code>:is()</code></a>) 擬似クラス、 <a href="/ja/docs/Web/CSS/CSS_nesting/Nesting_and_specificity">CSS 入れ子</a>自身は、詳細度に影響を与えませんが、それらの引数や入れ子ルールには影響を及ぼします。それぞれが詳細度重みアルゴリズムに寄与する詳細度の重みは、最も大きな重みを持っている引数または入れ子ルールのセレクターの詳細度です。</p> <p>次の表でわかりやすいいくつかの例を示します。これらを試してみて、なぜ詳細度が与えられるのかをしっかり理解してください。セレクターについてはまだ詳しく説明していませんが、MDN の <a href="/ja/docs/Web/CSS/CSS_selectors/Selectors_and_combinators">セレクターリファレンス</a>で詳細を参照することができます。</p> <figure class="table-container"><table> <thead> <tr> <th>セレクター</th> <th>ID</th> <th>クラス</th> <th>要素</th> <th>詳細度の合計</th> </tr> </thead> <tbody> <tr> <td><code>h1</code></td> <td>0</td> <td>0</td> <td>1</td> <td>0-0-1</td> </tr> <tr> <td><code>h1 + p::first-letter</code></td> <td>0</td> <td>0</td> <td>3</td> <td>0-0-3</td> </tr> <tr> <td><code>li &gt; a[href*="en-US"] &gt; .inline-warning</code></td> <td>0</td> <td>2</td> <td>2</td> <td>0-2-2</td> </tr> <tr> <td><code>#identifier</code></td> <td>1</td> <td>0</td> <td>0</td> <td>1-0-0</td> </tr> <tr> <td><code>button:not(#mainBtn, .cta</code>)</td> <td>1</td> <td>0</td> <td>1</td> <td>1-0-1</td> </tr> </tbody> </table></figure> <p>先に進む前に、実例を見てみましょう。</p><iframe width="100%" height="800" src="https://mdn.github.io/css-examples/learn/cascade/specificity-boxes.html" loading="lazy"></iframe> <p>何が起こっているのでしょうか?まず、この例の最初の 7 つ のルールにのみ関心があり、お気づきのように、各ルールの前に詳細度の値をコメントしてあります。</p> <ul> <li>最初の 2 つ のセレクターはリンクの背景色について競合しています。2 番目 のセレクターには ID セレクター があるのでそれが優先され、青になります。この詳細度は 2-0-1 であり、もう一方は 1-0-1 です。</li> <li>セレクター 3 と 4 は、リンクの文字色のスタイル設定をめぐって競合しています。2 つ目のセレクターが勝って、テキストを白にします。これは、要素セレクターが 1 つ少ないものの、足りないセレクターをクラスセレクターに入れ替えたためで、これはいくつの要素セレクターよりも比重が大きいからです。勝者の詳細度は、1-1-3 対 1-0-4 です。</li> <li>セレクター 5 ~ 7 は、マウスを当てたときのリンクの境界線のスタイル設定をめぐって競合しています。セレクター 6 は、0-2-3 対 0-2-4 の詳細度でセレクター 5 に明らかに負けています。セレクター 6 には、連鎖する要素のセレクターが 1 つ少ないからです。しかし、セレクター 7 はセレクター 5 と同じ数のサブセレクターを持ちますが、要素がクラスセレクターに置き換えられているため、セレクター 5 と 6 の両方に勝っています。つまり、0-3-3 の詳細度が 0-2-3、0-2-4 に対して勝利します。</li> </ul> <div class="notecard note"> <p><strong>メモ:</strong> セレクターの種類ごとにはそれぞれレベルの詳細度があり、より低い詳細度レベルのセレクターによって上書きすることはできません。例えば <em>100 万 の</em><strong>クラス</strong>セレクターを組み合わせても、<em>1 つ の</em> <strong>ID</strong> セレクターのルールを上書きすることはできません。</p> <p>詳細度を評価する最良の方法は、詳細度の高いものから始めて、必要に応じて低いものへ移動しながら、個別に点数をつけることです。ある列のセレクターのスコアが同点である場合のみ、次の列を評価する必要があります。そうでない場合は、詳細度の低いセレクターは詳細度の高いセレクターを上書きすることができないため、無視することができます。</p> </div></div></section><section aria-labelledby="インラインスタイル"><h3 id="インラインスタイル"><a href="#インラインスタイル">インラインスタイル</a></h3><div class="section-content"><p>インラインスタイル、つまり <a href="/ja/docs/Web/HTML/Global_attributes#style"><code>style</code></a> 属性内のスタイル宣言は、その詳細度に関わらず、すべての通常のスタイルよりも優先されます。このような宣言はセレクターがありませんが、その固有性は 1-0-0-0 と解釈され、セレクターにいくつの ID があっても、常に他のどの詳細度よりも高い重みを持ちます。</p></div></section><section aria-labelledby="!important"><h3 id="!important"><a href="#!important">!important</a></h3><div class="section-content"><p>インラインスタイルであっても、上記のすべての計算を覆すために使用できる特別なCSSがあります - <code>!important</code>フラグです。しかし、使用する際にはとても注意が必要です。このフラグは、個々のプロパティと値のペアを最も詳細なルールとするために使用され、それによって通常のインラインスタイルを含むカスケードのルールが上書きされます。</p> <div class="notecard note"> <p><strong>メモ:</strong> <code>!important</code>フラグの存在を知っておくと、他の人のコードでこのフラグに出会ったときに、それが何であるかを知ることができるので便利です。<strong>しかし、絶対に必要でない限り使用しないことを強くお勧めします。</strong> <code>!important</code> フラグはカスケードの通常の動作方法を変更するので、特に大きなスタイルシートでは、CSS の問題をデバッグするのが実に作業しづらくなる可能性があります。</p> </div> <p>例を見てみましょう。2 つの段落があり、そのうちの 1 つ には ID がついています。</p><iframe width="100%" height="800" src="https://mdn.github.io/css-examples/learn/cascade/important.html" loading="lazy"></iframe> <p>何が起きているのかを見てみましょう。理解しにくい場合は、いくつかのプロパティを削除しながら、どうなるか見てみてください。</p> <ol> <li>3 番目のルールでは <a href="/ja/docs/Web/CSS/color"><code>color</code></a> と <a href="/ja/docs/Web/CSS/padding"><code>padding</code></a> が適用されていますが、<a href="/ja/docs/Web/CSS/background-color"><code>background-color</code></a> は適用されていないことようです。なぜでしょうか?ソースオーダーの後の方は、普通は前の方のルールをオーバーライドするため、その観点では 3 つ すべてが適用されるはずです。</li> <li>とはいえ、クラスセレクターは要素セレクターよりも詳細度が高いため前者のルールが優先されます。</li> <li>両方の要素には <code>better</code> という <a href="/ja/docs/Web/HTML/Global_attributes#class"><code>class</code></a> がありますが、2 番目 の要素には <code>winning</code> という <a href="/ja/docs/Web/HTML/Global_attributes#id"><code>id</code></a> もあります。ID はクラスよりも<strong>より高い詳細度</strong>があるため(ページ上では ID を持つ要素は一意に 1 つ しか置けないのに対し、同じクラスを持つ多くの要素がありえるため、ID セレクターの方が<strong>非常に限定的</strong>になります)、2 番目の要素には赤い背景色と 1 ピクセルの黒い境界線が適用され、最初の要素についてはクラスで指定されたように灰色の背景色となり、境界線は消えます。</li> <li>2 番目 の要素は赤い背景が適用されていますが、あるはずの境界線はありません。なぜでしょうか? 2 つ目のルールに <code>!important</code> フラグがあるためです。<code>border: none</code> の後に <code>!important</code> フラグを追加すると、ID セレクターの方がより高い詳細度であっても、この宣言が前のルールの <code>border</code> 値に勝利するということです。</li> </ol> <div class="notecard note"> <p><strong>メモ:</strong> important 宣言を上書きする唯一の方法は、同じ詳細度を持つ別の important 宣言をソースの順番で後に記載するか、より高い詳細度を持つものを記載するか、前のカスケードレイヤーに important 宣言を記載することです(まだ、カスケードレイヤーについて触れていません)。</p> </div> <p><code>!important</code> フラグを使用しなければならない状況の 1 つ としては、コアにある CSS モジュールを編集できない CMS で作業している等で、他の方法では難しい場合にスタイルを実際にオーバーライドしたい場合等があります。でも本当に、回避できる場合は使用しないでください。</p></div></section><section aria-labelledby="css_の位置の効果"><h2 id="css_の位置の効果"><a href="#css_の位置の効果">CSS の位置の効果</a></h2><div class="section-content"><p>最後に、CSS 宣言の優先順位は、それがどのスタイルシートとカスケードレイヤーで指定されるかに依存することに注意することが重要です。</p> <p>ユーザーがカスタムスタイルシートを設定して、開発者のスタイルを上書きすることは可能です。例えば、視覚的な障碍を持つユーザーが、アクセスするすべてのウェブページのフォントサイズを通常の 2 倍に設定して、読みやすくすることができます。</p> <p>カスケードレイヤーで開発者のスタイルを宣言することも可能です。レイヤーで宣言されたスタイルをレイヤー以外のスタイルで上書きしたり、先に宣言されたレイヤーのスタイルを後のレイヤーで宣言されたスタイルで上書きしたりすることが可能です。例えば、開発者としてサードパーティのスタイルシートを編集することはできないかもしれませんが、外部スタイルシートをカスケードレイヤーにインポートすることで、サードパーティのセレクターの詳細度を気にせず、インポートしたスタイルをすべて簡単に上書きすることができます。</p></div></section><section aria-labelledby="宣言の上書きの順"><h3 id="宣言の上書きの順"><a href="#宣言の上書きの順">宣言の上書きの順</a></h3><div class="section-content"><p>競合する宣言は、以下の順序で適用され、後に適用されたものが先に適用されたものを上書きします。</p> <ol> <li>ユーザーエージェントのスタイルシートにおける宣言(例えば、他にスタイルが設定されていない場合に使用される、ブラウザーの既定スタイル)。</li> <li>ユーザースタイルシート(ユーザーが設定したカスタムスタイル)内の通常の宣言。</li> <li>作成者スタイルシートでの通常の宣言(これはウェブ開発者である私たちが設定したスタイルです)。</li> <li>作成者スタイルシートにおける important 宣言。</li> <li>ユーザースタイルシートにおける important 宣言。</li> <li>ユーザーエージェントスタイルシートにおける important 宣言。</li> </ol> <div class="notecard note"> <p><strong>メモ:</strong> 優先順位は <code>!important</code> でフラグづけされたスタイルでは逆転します。ウェブ開発者のスタイルシートがユーザーのスタイルシートを上書きするのは理にかなっているので、デザインは意図したとおりに保たれます。しかし、上記のように、ユーザーがウェブ開発者のスタイルを上書きするのに有益な理由がある場合もあり、その場合はルールに <code>!important</code> を使用して実現することができます。</p> </div></div></section><section aria-labelledby="カスケードレイヤーの順序"><h3 id="カスケードレイヤーの順序"><a href="#カスケードレイヤーの順序">カスケードレイヤーの順序</a></h3><div class="section-content"><p><a href="/ja/docs/Web/CSS/@layer">カスケードレイヤー</a>は高度なトピックで、すぐにこの機能を使用することはないでしょうが、レイヤーがどのようにカスケードされるかを理解することは重要です。</p> <p>CSS をカスケードレイヤーで宣言する場合、優先順位はレイヤーを宣言した順番で決まります。どのレイヤーの外でも宣言された CSS スタイルは、それらのスタイルが宣言された順に、あたかも最後に宣言されたレイヤーであるかのように、無名のレイヤーに結合されます。競合する通常の(重要でない)スタイルでは、後から定義されたレイヤーが先に定義されたレイヤーより優先されます。しかし、<code>!important</code> が付けられたスタイルでは、順序が逆転し、より早いレイヤーの重要なスタイルが、後続のレイヤーまたは任意のレイヤーの外側で宣言された重要なスタイルより優先されます。インラインスタイルは、レイヤーに関係なく、すべての作成者スタイルよりも優先されます。</p> <p>別々の形で複数のスタイルブロックを持っており、単一の要素のプロパティに競合する値を提供している場合、レイヤーが宣言されている順序で優先順位が決定されます。レイヤー間の詳細度は重要ではありませんが、単一のレイヤー内での詳細度は依然として重要です。</p><iframe width="100%" height="800" src="https://mdn.github.io/css-examples/learn/cascade/cascade-layers.html" loading="lazy"></iframe> <p>何が起こっているのかを理解するために、上の例からいくつかのことを説明してみましょう。<code>firstLayer</code> と <code>secondLayer</code> の 2 つのレイヤーが順に宣言されました。たとえ <code>secondLayer</code> の詳細度が最も高いとしても、その宣言のプロパティは使用されません。なぜか?レイヤー化されていない通常のスタイルは、詳細度に関係なく、レイヤー化された通常のスタイルよりも優先され、重要なレイヤーのスタイルは、これまた詳細度に関係なく、後のレイヤーで宣言された重要なスタイルより優先されるからです。</p> <p>この例の CSS の最初の行を <code>@layer secondLayer, firstLayer;</code> と変更すると、レイヤーの宣言順序が変わり、<code>firstLayer</code> の重要なスタイルはすべて <code>secondLayer</code> でそれぞれの値に変更されることになります。</p></div></section><section aria-labelledby="スコープ近接性"><h3 id="スコープ近接性"><a href="#スコープ近接性">スコープ近接性</a></h3><div class="section-content"><p>もう一つ、すぐに使用することはないかもしれませんが、将来的に理解する必要があるかもしれない高度なトピックに <a href="/ja/docs/Web/CSS/@scope"><code>@scope</code></a> があります。これは<a href="/ja/docs/Web/CSS/At-rule">アットルール</a>で、ページ上の HTML の固有のサブセクションにのみ適用されるルールのブロックを作成することができます。例えば、 <a href="/ja/docs/Web/HTML/Element/img"><code>&lt;img&gt;</code></a> 要素が <code>feature</code> クラスのある要素の中に入れ子になっている場合にのみ適用されるスタイルを指定します。</p> <div class="code-example"><div class="example-header"><span class="language-name">css</span></div><pre class="brush: css notranslate"><code>@scope (.feature) { img { border: 2px solid black; display: block; } } </code></pre></div> <p><strong>スコープ近接性</strong>は、スコープされた要素間の競合を解決するメカニズムです。スコープ近接性は、2 つのスコープに競合するスタイル設定がある場合、 DOM ツリー階層からスコープルートへの移動数が最も少ないスタイルが優先されるという状態です。詳細と例は <a href="/ja/docs/Web/CSS/@scope#scope_%E3%81%AE%E7%AB%B6%E5%90%88%E3%81%AE%E8%A7%A3%E6%B1%BA%E6%96%B9%E6%B3%95"><code>@scope</code> の競合の解決方法</a>を参照してください。</p> <div class="notecard note"> <p><strong>メモ:</strong> スコープの近接性はソースの順序よりも優先されますが、<a href="/ja/docs/Web/CSS/important">重要度</a>、<a href="/ja/docs/Learn/CSS/Building_blocks/Cascade_layers">レイヤー</a>、<a href="/ja/docs/Web/CSS/Specificity">詳細度</a>のような他にも優先度の高い仕様があれば、そちらが優先されます。</p> </div></div></section><section aria-labelledby="スキルテスト"><h2 id="スキルテスト"><a href="#スキルテスト">スキルテスト</a></h2><div class="section-content"><p>この記事の最後まで達しましたが、最も大事な情報を覚えていますか?次に移動する前に、この情報を覚えているか検証するテストがあります。<a href="/ja/docs/Learn/CSS/Building_blocks/Cascade_tasks">スキルテスト: カスケード</a>を見てください。</p></div></section><section aria-labelledby="まとめ"><h2 id="まとめ"><a href="#まとめ">まとめ</a></h2><div class="section-content"><p>この記事の内容をほぼ理解できたなら、よくやったと言えます。CSS の基本的な仕組みに慣れることには、着手できたのではないでしょうか。次は、<a href="/ja/docs/Learn/CSS/Building_blocks/Cascade_layers">カスケードレイヤー</a>について深く考えてみましょう。</p> <p>カスケード、詳細度、継承を完全に理解していなくても心配する必要はありません。このコースでこれまで取り上げてきたなかで、間違いなく最も複雑なことであり、プロのウェブ開発者でさえもたまに扱いにくく感じるものです。このコースを続行していくなかで、この記事にときどき戻り、それについて考え続けることをお勧めします。</p> <p>スタイルが期待どおりに適用されないという奇妙な問題に出くわした場合は、この記事を参照してください。詳細度の問題である可能性があります。</p><ul class="prev-next"> <li><a class="button secondary" href="/ja/docs/Learn/CSS/Building_blocks/Selectors/Combinators"><span class="button-wrap"> 前のページ </span></a></li> <li><a class="button secondary" href="/ja/docs/Learn/CSS/Building_blocks"><span class="button-wrap"> Overview: CSS の構成要素</span></a></li> <li><a class="button secondary" href="/ja/docs/Learn/CSS/Building_blocks/Cascade_layers"><span class="button-wrap"> 次のページ </span></a></li> </ul></div></section></article><aside class="article-footer"><div class="article-footer-inner"><div class="svg-container"><svg xmlns="http://www.w3.org/2000/svg" width="162" height="162" viewBox="0 0 162 162" fill="none" role="none"><mask id="b" fill="#fff"><path d="M97.203 47.04c8.113-7.886 18.004-13.871 28.906-17.492a78 78 0 0 1 33.969-3.39c11.443 1.39 22.401 5.295 32.024 11.411s17.656 14.28 23.476 23.86c5.819 9.579 9.269 20.318 10.083 31.385a69.85 69.85 0 0 1-5.387 32.44c-4.358 10.272-11.115 19.443-19.747 26.801-8.632 7.359-18.908 12.709-30.034 15.637l-6.17-21.698c7.666-2.017 14.746-5.703 20.694-10.773 5.948-5.071 10.603-11.389 13.606-18.467a48.14 48.14 0 0 0 3.712-22.352c-.561-7.625-2.938-15.025-6.948-21.625s-9.544-12.226-16.175-16.44-14.181-6.904-22.065-7.863a53.75 53.75 0 0 0-23.405 2.336c-7.513 2.495-14.327 6.62-19.918 12.053z"></path></mask><path stroke="url(#a)" stroke-dasharray="6, 6" stroke-width="2" d="M97.203 47.04c8.113-7.886 18.004-13.871 28.906-17.492a78 78 0 0 1 33.969-3.39c11.443 1.39 22.401 5.295 32.024 11.411s17.656 14.28 23.476 23.86c5.819 9.579 9.269 20.318 10.083 31.385a69.85 69.85 0 0 1-5.387 32.44c-4.358 10.272-11.115 19.443-19.747 26.801-8.632 7.359-18.908 12.709-30.034 15.637l-6.17-21.698c7.666-2.017 14.746-5.703 20.694-10.773 5.948-5.071 10.603-11.389 13.606-18.467a48.14 48.14 0 0 0 3.712-22.352c-.561-7.625-2.938-15.025-6.948-21.625s-9.544-12.226-16.175-16.44-14.181-6.904-22.065-7.863a53.75 53.75 0 0 0-23.405 2.336c-7.513 2.495-14.327 6.62-19.918 12.053z" mask="url(#b)" style="stroke:url(#a)" transform="translate(-63.992 -25.587)"></path><ellipse cx="8.066" cy="111.597" fill="var(--background-tertiary)" rx="53.677" ry="53.699" transform="matrix(.71707 -.697 .7243 .6895 0 0)"></ellipse><g clip-path="url(#c)" transform="translate(-63.992 -25.587)"><path fill="#9abff5" d="m144.256 137.379 32.906 12.434a4.41 4.41 0 0 1 2.559 5.667l-9.326 24.679a4.41 4.41 0 0 1-5.667 2.559l-8.226-3.108-2.332 6.17c-.466 1.233-.375 1.883-1.609 1.417l-2.253-.527c-.411-.155-.95-.594-1.206-1.161l-4.734-10.484-12.545-4.741a4.41 4.41 0 0 1-2.559-5.667l9.325-24.679a4.41 4.41 0 0 1 5.667-2.559m9.961 29.617 8.227 3.108 3.264-8.638-.498-6.768-4.113-1.555.548 7.258-4.319-1.632zm-12.339-4.663 8.226 3.108 3.264-8.637-.498-6.769-4.113-1.554.548 7.257-4.319-1.632z"></path></g><g clip-path="url(#d)" transform="translate(-63.992 -25.587)"><path fill="#81b0f3" d="M135.35 60.136 86.67 41.654c-3.346-1.27-7.124.428-8.394 3.775L64.414 81.938c-1.27 3.347.428 7.125 3.774 8.395l12.17 4.62-3.465 9.128c-.693 1.826-1.432 2.457.394 3.15l3.014 1.625c.609.231 1.637.274 2.477-.104l15.53-6.983 18.56 7.047c3.346 1.27 7.124-.428 8.395-3.775l13.862-36.51c1.27-3.346-.428-7.124-3.775-8.395M95.261 83.207l-12.17-4.62 4.852-12.779 7.19-7.017 6.085 2.31-7.725 7.51 6.389 2.426zm18.255 6.93-12.17-4.62 4.852-12.778 7.189-7.017 6.085 2.31-7.725 7.51 6.39 2.426z"></path></g><defs><clipPath id="c"><path fill="#fff" d="m198.638 146.586-65.056-24.583-24.583 65.057 65.056 24.582z"></path></clipPath><clipPath id="d"><path fill="#fff" d="m66.438 14.055 96.242 36.54-36.54 96.243-96.243-36.54z"></path></clipPath><linearGradient id="a" x1="97.203" x2="199.995" y1="47.04" y2="152.793" gradientUnits="userSpaceOnUse"><stop stop-color="#086DFC"></stop><stop offset="0.246" stop-color="#2C81FA"></stop><stop offset="0.516" stop-color="#5497F8"></stop><stop offset="0.821" stop-color="#80B0F6"></stop><stop offset="1" stop-color="#9ABFF5"></stop></linearGradient></defs></svg></div><h2>Help improve MDN</h2><fieldset class="feedback"><label>Was this page helpful to you?</label><div class="button-container"><button type="button" class="button primary has-icon yes"><span class="button-wrap"><span class="icon icon-thumbs-up "></span>Yes</span></button><button type="button" class="button primary has-icon no"><span class="button-wrap"><span class="icon icon-thumbs-down "></span>No</span></button></div></fieldset><a class="contribute" href="https://github.com/mdn/translated-content/blob/main/CONTRIBUTING.md" title="This will take you to our contribution guidelines on GitHub." target="_blank" rel="noopener noreferrer">Learn how to contribute</a>.<p class="last-modified-date">This page was last modified on<!-- --> <time dateTime="2024-07-28T07:15:15.000Z">2024年7月28日</time> by<!-- --> <a href="/ja/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance/contributors.txt" rel="nofollow">MDN contributors</a>.</p><div id="on-github" class="on-github"><a href="https://github.com/mdn/translated-content/blob/main/files/ja/learn/css/building_blocks/cascade_and_inheritance/index.md?plain=1" title="Folder: ja/learn/css/building_blocks/cascade_and_inheritance (Opens in a new tab)" target="_blank" rel="noopener noreferrer">View this page on GitHub</a> <!-- -->•<!-- --> <a href="https://github.com/mdn/translated-content/issues/new?template=page-report-ja.yml&amp;mdn-url=https%3A%2F%2Fdeveloper.mozilla.org%2Fja%2Fdocs%2FLearn%2FCSS%2FBuilding_blocks%2FCascade_and_inheritance&amp;metadata=%3C%21--+Do+not+make+changes+below+this+line+--%3E%0A%3Cdetails%3E%0A%3Csummary%3EPage+report+details%3C%2Fsummary%3E%0A%0A*+Folder%3A+%60ja%2Flearn%2Fcss%2Fbuilding_blocks%2Fcascade_and_inheritance%60%0A*+MDN+URL%3A+https%3A%2F%2Fdeveloper.mozilla.org%2Fja%2Fdocs%2FLearn%2FCSS%2FBuilding_blocks%2FCascade_and_inheritance%0A*+GitHub+URL%3A+https%3A%2F%2Fgithub.com%2Fmdn%2Ftranslated-content%2Fblob%2Fmain%2Ffiles%2Fja%2Flearn%2Fcss%2Fbuilding_blocks%2Fcascade_and_inheritance%2Findex.md%0A*+Last+commit%3A+https%3A%2F%2Fgithub.com%2Fmdn%2Ftranslated-content%2Fcommit%2F02b65ac8ec40dc5933c3ec60bcbcec2d40cc096f%0A*+Document+last+modified%3A+2024-07-28T07%3A15%3A15.000Z%0A%0A%3C%2Fdetails%3E" title="This will take you to GitHub to file a new issue." target="_blank" rel="noopener noreferrer">Report a problem with this content</a></div></div></aside></main></div></div><footer id="nav-footer" class="page-footer"><div class="page-footer-grid"><div class="page-footer-logo-col"><a href="/" class="mdn-footer-logo" aria-label="MDN homepage"><svg width="48" height="17" viewBox="0 0 48 17" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="mdn-footer-logo-svg">MDN logo</title><path d="M20.04 16.512H15.504V10.416C15.504 9.488 15.344 8.824 15.024 8.424C14.72 8.024 14.264 7.824 13.656 7.824C12.92 7.824 12.384 8.064 12.048 8.544C11.728 9.024 11.568 9.64 11.568 10.392V14.184H13.008V16.512H8.472V10.416C8.472 9.488 8.312 8.824 7.992 8.424C7.688 8.024 7.232 7.824 6.624 7.824C5.872 7.824 5.336 8.064 5.016 8.544C4.696 9.024 4.536 9.64 4.536 10.392V14.184H6.6V16.512H0V14.184H1.44V8.04H0.024V5.688H4.536V7.32C5.224 6.088 6.32 5.472 7.824 5.472C8.608 5.472 9.328 5.664 9.984 6.048C10.64 6.432 11.096 7.016 11.352 7.8C11.992 6.248 13.168 5.472 14.88 5.472C15.856 5.472 16.72 5.776 17.472 6.384C18.224 6.992 18.6 7.936 18.6 9.216V14.184H20.04V16.512Z" fill="currentColor"></path><path d="M33.6714 16.512H29.1354V14.496C28.8314 15.12 28.3834 15.656 27.7914 16.104C27.1994 16.536 26.4154 16.752 25.4394 16.752C24.0154 16.752 22.8954 16.264 22.0794 15.288C21.2634 14.312 20.8554 12.984 20.8554 11.304C20.8554 9.688 21.2554 8.312 22.0554 7.176C22.8554 6.04 24.0634 5.472 25.6794 5.472C26.5594 5.472 27.2794 5.648 27.8394 6C28.3994 6.352 28.8314 6.8 29.1354 7.344V2.352H26.9754V0H32.2314V14.184H33.6714V16.512ZM29.1354 11.04V10.776C29.1354 9.88 28.8954 9.184 28.4154 8.688C27.9514 8.176 27.3674 7.92 26.6634 7.92C25.9754 7.92 25.3674 8.176 24.8394 8.688C24.3274 9.2 24.0714 10.008 24.0714 11.112C24.0714 12.152 24.3114 12.944 24.7914 13.488C25.2714 14.032 25.8394 14.304 26.4954 14.304C27.3114 14.304 27.9514 13.96 28.4154 13.272C28.8954 12.584 29.1354 11.84 29.1354 11.04Z" fill="currentColor"></path><path d="M47.9589 16.512H41.9829V14.184H43.4229V10.416C43.4229 9.488 43.2629 8.824 42.9429 8.424C42.6389 8.024 42.1829 7.824 41.5749 7.824C40.8389 7.824 40.2709 8.056 39.8709 8.52C39.4709 8.968 39.2629 9.56 39.2469 10.296V14.184H40.6869V16.512H34.7109V14.184H36.1509V8.04H34.5909V5.688H39.2469V7.344C39.9669 6.096 41.1269 5.472 42.7269 5.472C43.7509 5.472 44.6389 5.776 45.3909 6.384C46.1429 6.992 46.5189 7.936 46.5189 9.216V14.184H47.9589V16.512Z" fill="currentColor"></path></svg></a><p>Your blueprint for a better internet.</p><ul class="social-icons"><li><a href="https://mozilla.social/@mdn" target="_blank" rel="me noopener noreferrer"><span class="icon icon-mastodon"></span><span class="visually-hidden">MDN on Mastodon</span></a></li><li><a href="https://twitter.com/mozdevnet" target="_blank" rel="noopener noreferrer"><span class="icon icon-twitter-x"></span><span class="visually-hidden">MDN on X (formerly Twitter)</span></a></li><li><a href="https://github.com/mdn/" target="_blank" rel="noopener noreferrer"><span class="icon icon-github-mark-small"></span><span class="visually-hidden">MDN on GitHub</span></a></li><li><a href="/en-US/blog/rss.xml" target="_blank"><span class="icon icon-feed"></span><span class="visually-hidden">MDN Blog RSS Feed</span></a></li></ul></div><div class="page-footer-nav-col-1"><h2 class="footer-nav-heading">MDN</h2><ul class="footer-nav-list"><li class="footer-nav-item"><a href="/en-US/about">About</a></li><li class="footer-nav-item"><a href="/en-US/blog/">Blog</a></li><li class="footer-nav-item"><a href="https://www.mozilla.org/en-US/careers/listings/?team=ProdOps" target="_blank" rel="noopener noreferrer">Careers</a></li><li class="footer-nav-item"><a href="/en-US/advertising">Advertise with us</a></li></ul></div><div class="page-footer-nav-col-2"><h2 class="footer-nav-heading">Support</h2><ul class="footer-nav-list"><li class="footer-nav-item"><a class="footer-nav-link" href="https://support.mozilla.org/products/mdn-plus">Product help</a></li><li class="footer-nav-item"><a class="footer-nav-link" href="/ja/docs/MDN/Community/Issues">Report an issue</a></li></ul></div><div class="page-footer-nav-col-3"><h2 class="footer-nav-heading">Our communities</h2><ul class="footer-nav-list"><li class="footer-nav-item"><a class="footer-nav-link" href="/en-US/community">MDN Community</a></li><li class="footer-nav-item"><a class="footer-nav-link" href="https://discourse.mozilla.org/c/mdn/236" target="_blank" rel="noopener noreferrer">MDN Forum</a></li><li class="footer-nav-item"><a class="footer-nav-link" href="/discord" target="_blank" rel="noopener noreferrer">MDN Chat</a></li></ul></div><div class="page-footer-nav-col-4"><h2 class="footer-nav-heading">Developers</h2><ul class="footer-nav-list"><li class="footer-nav-item"><a class="footer-nav-link" href="/ja/docs/Web">Web Technologies</a></li><li class="footer-nav-item"><a class="footer-nav-link" href="/ja/docs/Learn">Learn Web Development</a></li><li class="footer-nav-item"><a class="footer-nav-link" href="/ja/plus">MDN Plus</a></li><li class="footer-nav-item"><a href="https://hacks.mozilla.org/" target="_blank" rel="noopener noreferrer">Hacks Blog</a></li></ul></div><div class="page-footer-moz"><a href="https://www.mozilla.org/" class="footer-moz-logo-link" target="_blank" rel="noopener noreferrer"><svg width="112" height="32" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="mozilla-footer-logo-svg">Mozilla logo</title><path d="M41.753 14.218c-2.048 0-3.324 1.522-3.324 4.157 0 2.423 1.119 4.286 3.29 4.286 2.082 0 3.447-1.678 3.447-4.347 0-2.826-1.522-4.096-3.413-4.096Zm54.89 7.044c0 .901.437 1.618 1.645 1.618 1.427 0 2.949-1.024 3.044-3.352-.649-.095-1.365-.185-2.02-.185-1.426-.005-2.668.397-2.668 1.92Z" fill="currentColor"></path><path d="M0 0v32h111.908V0H0Zm32.56 25.426h-5.87v-7.884c0-2.423-.806-3.352-2.39-3.352-1.924 0-2.702 1.365-2.702 3.324v4.868h1.864v3.044h-5.864v-7.884c0-2.423-.806-3.352-2.39-3.352-1.924 0-2.702 1.365-2.702 3.324v4.868h2.669v3.044H6.642v-3.044h1.863v-7.918H6.642V11.42h5.864v2.11c.839-1.489 2.3-2.39 4.252-2.39 2.02 0 3.878.963 4.566 3.01.778-1.862 2.361-3.01 4.566-3.01 2.512 0 4.812 1.522 4.812 4.84v6.402h1.863v3.044h-.005Zm9.036.307c-4.314 0-7.296-2.635-7.296-7.106 0-4.096 2.484-7.481 7.514-7.481s7.481 3.38 7.481 7.29c0 4.472-3.228 7.297-7.699 7.297Zm22.578-.307H51.942l-.403-2.11 7.7-8.846h-4.376l-.621 2.17-2.888-.313.498-4.907h12.294l.313 2.11-7.767 8.852h4.533l.654-2.172 3.167.308-.872 4.908Zm7.99 0h-4.191v-5.03h4.19v5.03Zm0-8.976h-4.191v-5.03h4.19v5.03Zm2.618 8.976 6.054-21.358h3.945l-6.054 21.358h-3.945Zm8.136 0 6.048-21.358h3.945l-6.054 21.358h-3.939Zm21.486.307c-1.863 0-2.887-1.085-3.072-2.792-.805 1.427-2.232 2.792-4.498 2.792-2.02 0-4.314-1.085-4.314-4.006 0-3.447 3.323-4.253 6.518-4.253.778 0 1.584.034 2.3.124v-.465c0-1.427-.034-3.133-2.3-3.133-.84 0-1.488.061-2.143.402l-.453 1.578-3.195-.34.549-3.224c2.45-.996 3.692-1.27 5.992-1.27 3.01 0 5.556 1.55 5.556 4.75v6.083c0 .805.314 1.085.963 1.085.184 0 .375-.034.587-.095l.034 2.11a5.432 5.432 0 0 1-2.524.654Z" fill="currentColor"></path></svg></a><ul class="footer-moz-list"><li class="footer-moz-item"><a href="https://www.mozilla.org/privacy/websites/" class="footer-moz-link" target="_blank" rel="noopener noreferrer">Website Privacy Notice</a></li><li class="footer-moz-item"><a href="https://www.mozilla.org/privacy/websites/#cookies" class="footer-moz-link" target="_blank" rel="noopener noreferrer">Cookies</a></li><li class="footer-moz-item"><a href="https://www.mozilla.org/about/legal/terms/mozilla" class="footer-moz-link" target="_blank" rel="noopener noreferrer">Legal</a></li><li class="footer-moz-item"><a href="https://www.mozilla.org/about/governance/policies/participation/" class="footer-moz-link" target="_blank" rel="noopener noreferrer">Community Participation Guidelines</a></li></ul></div><div class="page-footer-legal"><p id="license" class="page-footer-legal-text">Visit<!-- --> <a href="https://www.mozilla.org" target="_blank" rel="noopener noreferrer">Mozilla Corporation’s</a> <!-- -->not-for-profit parent, the<!-- --> <a target="_blank" rel="noopener noreferrer" href="https://foundation.mozilla.org/">Mozilla Foundation</a>.<br/>Portions of this content are ©1998–<!-- -->2024<!-- --> by individual mozilla.org contributors. Content available under<!-- --> <a href="/ja/docs/MDN/Writing_guidelines/Attrib_copyright_license">a Creative Commons license</a>.</p></div></div></footer></div><script type="application/json" id="hydration">{"url":"/ja/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance","doc":{"isMarkdown":true,"isTranslated":true,"isActive":true,"flaws":{},"title":"カスケード、詳細度、継承","mdn_url":"/ja/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance","locale":"ja","native":"日本語","sidebarHTML":"<ol><li class=\"section\"><a href=\"/ja/docs/Learn/Getting_started_with_the_web\">完全な初心者はこちらから!</a></li><li><details><summary>ウェブ入門</summary><ol><li><a href=\"/ja/docs/Learn/Getting_started_with_the_web\">ウェブ入門</a></li><li><a href=\"/ja/docs/Learn/Getting_started_with_the_web/Installing_basic_software\">基本的なソフトウェアのインストール</a></li><li><a href=\"/ja/docs/Learn/Getting_started_with_the_web/What_will_your_website_look_like\">ウェブサイトをどんな外見にするか</a></li><li><a href=\"/ja/docs/Learn/Getting_started_with_the_web/Dealing_with_files\">ファイルの扱い</a></li><li><a href=\"/ja/docs/Learn/Getting_started_with_the_web/HTML_basics\">HTML の基本</a></li><li><a href=\"/ja/docs/Learn/Getting_started_with_the_web/CSS_basics\">CSS の基本</a></li><li><a href=\"/ja/docs/Learn/Getting_started_with_the_web/JavaScript_basics\">JavaScript の基本</a></li><li><a href=\"/ja/docs/Learn/Getting_started_with_the_web/Publishing_your_website\">ウェブサイトの公開</a></li><li><a href=\"/ja/docs/Learn/Getting_started_with_the_web/How_the_Web_works\">ウェブのしくみ</a></li></ol></details></li><li class=\"section\"><a href=\"/ja/docs/Learn/HTML\">HTML — ウェブの構造化</a></li><li><details><summary>HTML概論</summary><ol><li><a href=\"/ja/docs/Learn/HTML/Introduction_to_HTML\">HTML 入門</a></li><li><a href=\"/ja/docs/Learn/HTML/Introduction_to_HTML/Getting_started\">HTML を始めよう</a></li><li><a href=\"/ja/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML\">ヘッド部には何が入る? HTML のメタデータ</a></li><li><a href=\"/ja/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals\">HTML テキストの基礎</a></li><li><a href=\"/ja/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks\">ハイパーリンクの作成</a></li><li><a href=\"/ja/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting\">高度なテキスト整形</a></li><li><a href=\"/ja/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure\">文書とウェブサイトの構造</a></li><li><a href=\"/ja/docs/Learn/HTML/Introduction_to_HTML/Debugging_HTML\">HTML のデバッグ</a></li><li><a href=\"/ja/docs/Learn/HTML/Introduction_to_HTML/Marking_up_a_letter\">手紙のマークアップ</a></li><li><a href=\"/ja/docs/Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content\">コンテンツのページの構造化</a></li></ol></details></li><li><details><summary>マルチメディアと埋め込み</summary><ol><li><a href=\"/ja/docs/Learn/HTML/Multimedia_and_embedding\">マルチメディアとその埋め込み</a></li><li><a href=\"/ja/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML\">HTML の画像</a></li><li><a href=\"/ja/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content\">動画と音声のコンテンツ</a></li><li><a href=\"/ja/docs/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies\">object から iframe まで — その他の埋め込み技術</a></li><li><a href=\"/ja/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web\">ウェブへのベクターグラフィックの追加</a></li><li><a href=\"/ja/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images\">レスポンシブ画像</a></li><li><a href=\"/ja/docs/Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page\">Mozilla のスプラッシュページ</a></li></ol></details></li><li><details><summary>HTML 表</summary><ol><li><a href=\"/ja/docs/Learn/HTML/Tables\">HTML 表</a></li><li><a href=\"/ja/docs/Learn/HTML/Tables/Basics\">HTML の表の基本</a></li><li><a href=\"/ja/docs/Learn/HTML/Tables/Advanced\">HTML 表の高度な機能とアクセシビリティ</a></li><li><a href=\"/ja/docs/Learn/HTML/Tables/Structuring_planet_data\">惑星データの構造化</a></li></ol></details></li><li class=\"section\"><a href=\"/ja/docs/Learn/CSS\">CSS — ウェブのスタイル設定</a></li><li><details><summary>CSS の第一歩</summary><ol><li><a href=\"/ja/docs/Learn/CSS/First_steps\">CSS の第一歩</a></li><li><a href=\"/ja/docs/Learn/CSS/First_steps/What_is_CSS\">CSS とは何か</a></li><li><a href=\"/ja/docs/Learn/CSS/First_steps/Getting_started\">CSS 入門</a></li><li><a href=\"/ja/docs/Learn/CSS/First_steps/How_CSS_is_structured\">CSS の構造</a></li><li><a href=\"/ja/docs/Learn/CSS/First_steps/How_CSS_works\">CSS はどう働くか</a></li><li><a href=\"/ja/docs/Learn/CSS/First_steps/Styling_a_biography_page\">経歴ページのスタイル設定</a></li></ol></details></li><li><details open=\"\"><summary>CSS の構成要素</summary><ol><li><a href=\"/ja/docs/Learn/CSS/Building_blocks\">CSS の構成要素</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Selectors\">CSS セレクター</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors\">要素型、クラス、ID セレクター</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors\">属性セレクター</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements\">擬似クラスと擬似要素</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Selectors/Combinators\">結合子</a></li><li><em><a href=\"/ja/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance\" aria-current=\"page\">カスケード、詳細度、継承</a></em></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Cascade_layers\">カスケードレイヤー</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/The_box_model\">ボックスモデル</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders\">背景と境界線</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Handling_different_text_directions\">テキストの様々な方向の扱い</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Overflowing_content\">要素のオーバーフロー</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Values_and_units\">CSS の値と単位</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS\">CSS によるサイズ設定</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Images_media_form_elements\">画像、メディア、フォーム要素</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Styling_tables\">表のスタイル設定</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Advanced_styling_effects\">ボックスの高度な効果</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Debugging_CSS\">CSS のデバッグ</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Organizing\">CSS の整理</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Fundamental_CSS_comprehension\">基本的な CSS の理解</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/Creating_fancy_letterheaded_paper\">美しいレターヘッド付きの便箋の作成</a></li><li><a href=\"/ja/docs/Learn/CSS/Building_blocks/A_cool_looking_box\">かっこいいボックス</a></li></ol></details></li><li><details><summary>テキストの装飾</summary><ol><li><a href=\"/ja/docs/Learn/CSS/Styling_text\">テキストの装飾</a></li><li><a href=\"/ja/docs/Learn/CSS/Styling_text/Fundamentals\">基本的なテキストとフォントのスタイル設定</a></li><li><a href=\"/ja/docs/Learn/CSS/Styling_text/Styling_lists\">リストの装飾</a></li><li><a href=\"/ja/docs/Learn/CSS/Styling_text/Styling_links\">リンクのスタイル設定</a></li><li><a href=\"/ja/docs/Learn/CSS/Styling_text/Web_fonts\">ウェブフォント</a></li><li><a href=\"/ja/docs/Learn/CSS/Styling_text/Typesetting_a_homepage\">コミュニティスクールのホームページの組版</a></li></ol></details></li><li><details><summary>CSS レイアウト</summary><ol><li><a href=\"/ja/docs/Learn/CSS/CSS_layout\">CSS レイアウト</a></li><li><a href=\"/ja/docs/Learn/CSS/CSS_layout/Introduction\">CSS レイアウト入門</a></li><li><a href=\"/ja/docs/Learn/CSS/CSS_layout/Normal_Flow\">通常フロー</a></li><li><a href=\"/ja/docs/Learn/CSS/CSS_layout/Flexbox\">フレックスボックス</a></li><li><a href=\"/ja/docs/Learn/CSS/CSS_layout/Grids\">グリッド</a></li><li><a href=\"/ja/docs/Learn/CSS/CSS_layout/Floats\">浮動ボックス</a></li><li><a href=\"/ja/docs/Learn/CSS/CSS_layout/Positioning\">位置指定</a></li><li><a href=\"/ja/docs/Learn/CSS/CSS_layout/Multiple-column_Layout\">段組みレイアウト</a></li><li><a href=\"/ja/docs/Learn/CSS/CSS_layout/Responsive_Design\">レスポンシブデザイン</a></li><li><a href=\"/ja/docs/Learn/CSS/CSS_layout/Media_queries\">メディアクエリーの初心者向けガイド</a></li><li><a href=\"/ja/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods\">過去のレイアウト方法</a></li><li><a href=\"/ja/docs/Learn/CSS/CSS_layout/Supporting_Older_Browsers\">古いブラウザーの対応</a></li><li><a href=\"/ja/docs/Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension\">基礎的なレイアウトの理解</a></li></ol></details></li><li class=\"section\"><a href=\"/ja/docs/Learn/JavaScript\">JavaScript — 動的クライアントサイドスクリプト</a></li><li><details><summary>JavaScript の第一歩</summary><ol><li><a href=\"/ja/docs/Learn/JavaScript/First_steps\">JavaScript の第一歩</a></li><li><a href=\"/ja/docs/Learn/JavaScript/First_steps/What_is_JavaScript\">JavaScript とは</a></li><li><a href=\"/ja/docs/Learn/JavaScript/First_steps/A_first_splash\">JavaScript の最初の一歩</a></li><li><a href=\"/ja/docs/Learn/JavaScript/First_steps/What_went_wrong\">何が間違っている? JavaScript のトラブルシューティング</a></li><li><a href=\"/ja/docs/Learn/JavaScript/First_steps/Variables\">必要な情報を保管する — 変数</a></li><li><a href=\"/ja/docs/Learn/JavaScript/First_steps/Math\">JavaScript での基本演算 — 数値と演算子</a></li><li><a href=\"/ja/docs/Learn/JavaScript/First_steps/Strings\">テキストの扱い — JavaScript での文字列</a></li><li><a href=\"/ja/docs/Learn/JavaScript/First_steps/Useful_string_methods\">便利な文字列メソッド</a></li><li><a href=\"/ja/docs/Learn/JavaScript/First_steps/Arrays\">配列</a></li><li><a href=\"/ja/docs/Learn/JavaScript/First_steps/Silly_story_generator\">バカ話ジェネレーター</a></li></ol></details></li><li><details><summary>JavaScript の構成要素</summary><ol><li><a href=\"/ja/docs/Learn/JavaScript/Building_blocks\">JavaScript の構成要素</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Building_blocks/conditionals\">コードでの意思決定 — 条件文</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Building_blocks/Looping_code\">ループするコード</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Building_blocks/Functions\">関数 — 再利用可能なコードブロック</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Building_blocks/Build_your_own_function\">独自の関数を作る</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Building_blocks/Return_values\">関数の返値</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Building_blocks/Events\">イベント入門</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Building_blocks/Event_bubbling\">イベントのバブリング</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Building_blocks/Image_gallery\">イメージギャラリー</a></li></ol></details></li><li><details><summary>JavaScript オブジェクトの紹介</summary><ol><li><a href=\"/ja/docs/Learn/JavaScript/Objects\">JavaScript オブジェクト入門</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Objects/Basics\">JavaScript オブジェクトの基本</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Objects/Object_prototypes\">オブジェクトのプロトタイプ</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Objects/Object-oriented_programming\">オブジェクト指向プログラミング</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Objects/Classes_in_JavaScript\">JavaScript のクラス</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Objects/JSON\">JSON の操作</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Objects/Object_building_practice\">オブジェクト構築の練習</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Objects/Adding_bouncing_balls_features\">バウンスボールのデモに機能を追加する</a></li></ol></details></li><li><details><summary>非同期 JavaScript</summary><ol><li><a href=\"/ja/docs/Learn/JavaScript/Asynchronous\">非同期 JavaScript</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Asynchronous/Introducing\">非同期 JavaScript 入門</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Asynchronous/Promises\">プロミスの使い方</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Asynchronous/Implementing_a_promise-based_API\">プロミスベースの API の実装方法</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Asynchronous/Introducing_workers\">ワーカー入門</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Asynchronous/Sequencing_animations\">アニメーションを順番に再生する</a></li></ol></details></li><li><details><summary>クライアントサイド Web API</summary><ol><li><a href=\"/ja/docs/Learn/JavaScript/Client-side_web_APIs\">クライアントサイド Web API</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Client-side_web_APIs/Introduction\">Web API の紹介</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Client-side_web_APIs/Manipulating_documents\">文書の操作</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data\">サーバーからのデータ取得</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Client-side_web_APIs/Third_party_APIs\">サードパーティ API</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Client-side_web_APIs/Drawing_graphics\">グラフィックの描画</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Client-side_web_APIs/Video_and_audio_APIs\">動画と音声の API</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage\">クライアント側ストレージ</a></li></ol></details></li><li class=\"section\"><a href=\"/ja/docs/Learn/Forms\">ウェブフォーム — ユーザーデータの操作</a></li><li><details><summary>ウェブフォームの構成要素</summary><ol><li><a href=\"/ja/docs/Learn/Forms\">ウェブフォームの構成要素</a></li><li><a href=\"/ja/docs/Learn/Forms/Your_first_form\">初めてのフォーム</a></li><li><a href=\"/ja/docs/Learn/Forms/How_to_structure_a_web_form\">フォームの構築方法</a></li><li><a href=\"/ja/docs/Learn/Forms/Basic_native_form_controls\">基本的なネイティブフォームコントロール</a></li><li><a href=\"/ja/docs/Learn/Forms/HTML5_input_types\">HTML5 の入力型</a></li><li><a href=\"/ja/docs/Learn/Forms/Other_form_controls\">その他のフォームコントロール</a></li><li><a href=\"/ja/docs/Learn/Forms/Styling_web_forms\">ウェブフォームへのスタイル設定</a></li><li><a href=\"/ja/docs/Learn/Forms/Advanced_form_styling\">フォームへの高度なスタイル設定</a></li><li><a href=\"/ja/docs/Learn/Forms/UI_pseudo-classes\">UI 擬似クラス</a></li><li><a href=\"/ja/docs/Learn/Forms/Form_validation\">クライアント側のフォーム検証</a></li><li><a href=\"/ja/docs/Learn/Forms/Sending_and_retrieving_form_data\">フォームデータの送信</a></li></ol></details></li><li><details><summary>高度なウェブフォームテクニック</summary><ol><li><a href=\"/ja/docs/Learn/Forms/How_to_build_custom_form_controls\">カスタムフォームコントロールの作成方法</a></li><li><a href=\"/ja/docs/Learn/Forms/Sending_forms_through_JavaScript\">JavaScript によるフォームの送信</a></li><li><a href=\"/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls\">フォームコントロール向けの CSS プロパティの互換性一覧表</a></li><li><a href=\"/ja/docs/Learn/Forms/HTML_forms_in_legacy_browsers\">古いブラウザーでの HTML フォーム</a></li></ol></details></li><li class=\"section\"><a href=\"/ja/docs/Learn/Accessibility\">アクセシビリティ — 誰もウェブを利用できるようにする</a></li><li><details><summary>アクセシビリティガイド</summary><ol><li><a href=\"/ja/docs/Learn/Accessibility\">アクセシビリティ</a></li><li><a href=\"/ja/docs/Learn/Accessibility/What_is_accessibility\">アクセシビリティとは</a></li><li><a href=\"/ja/docs/Learn/Accessibility/HTML\">HTML: アクセシビリティの良き基本</a></li><li><a href=\"/ja/docs/Learn/Accessibility/CSS_and_JavaScript\">CSS と JavaScript のアクセシビリティのベストプラクティス</a></li><li><a href=\"/ja/docs/Learn/Accessibility/WAI-ARIA_basics\">WAI-ARIA の基本</a></li><li><a href=\"/ja/docs/Learn/Accessibility/Multimedia\">アクセシブルなマルチメディア</a></li><li><a href=\"/ja/docs/Learn/Accessibility/Mobile\">モバイルのアクセシビリティ</a></li><li><a href=\"/ja/docs/Learn/Accessibility/Accessibility_troubleshooting\">評価: アクセシビリティのトラブルシューティング</a></li></ol></details></li><li class=\"section\"><a href=\"/ja/docs/Learn/Performance\">パフォーマンス — ウェブサイトを高速かつ応答性の高いものにする</a></li><li><details><summary>パフォーマンスガイド</summary><ol><li><a href=\"/ja/docs/Learn/Performance\">ウェブパフォーマンス</a></li><li><a href=\"/ja/docs/Learn/Performance/why_web_performance\">ウェブパフォーマンスの「なぜ」</a></li><li><a href=\"/ja/docs/Learn/Performance/What_is_web_performance\">ウェブパフォーマンスとは</a></li><li><a href=\"/ja/docs/Learn/Performance/Perceived_performance\">知覚的パフォーマンス</a></li><li><a href=\"/ja/docs/Learn/Performance/Measuring_performance\">パフォーマンスの測定</a></li><li><a href=\"/ja/docs/Learn/Performance/Multimedia\">マルチメディア: 画像</a></li><li><a href=\"/ja/docs/Learn/Performance/video\">マルチメディア: 動画</a></li><li><a href=\"/ja/docs/Learn/Performance/JavaScript\">JavaScript のパフォーマンス</a></li><li><a href=\"/ja/docs/Learn/Performance/HTML\">HTML のパフォーマンス機能</a></li><li><a href=\"/ja/docs/Learn/Performance/CSS\">CSS のパフォーマンス最適化</a></li><li><a href=\"/ja/docs/Learn/Performance/business_case_for_performance\">ウェブパフォーマンスのビジネスケース</a></li></ol></details></li><li class=\"section\"><a href=\"/ja/docs/Learn/MathML\">MathML — MathML を使用して数学を記述する</a></li><li><details><summary>MathML の最初のステップ</summary><ol><li><a href=\"/ja/docs/Learn/MathML/First_steps\">MathML 第一歩の概要</a></li><li><a href=\"/ja/docs/Learn/MathML/First_steps/Getting_started\">MathML を始めよう</a></li><li><a href=\"/ja/docs/Learn/MathML/First_steps/Text_containers\">MathML テキストコンテナー</a></li><li><a href=\"/ja/docs/Learn/MathML/First_steps/Fractions_and_roots\">MathML 分数と根号</a></li><li><a href=\"/ja/docs/Learn/MathML/First_steps/Scripts\">MathML 添字要素</a></li><li><a href=\"/ja/docs/Learn/MathML/First_steps/Tables\">MathML 表</a></li><li><a href=\"/ja/docs/Learn/MathML/First_steps/Three_famous_mathematical_formulas\">三大数式</a></li></ol></details></li><li class=\"section\"><a href=\"/ja/docs/Learn/../Games\">ゲーム — ウェブ用ゲームの開発</a></li><li><details><summary>ガイドとチュートリアル</summary><ol><li><a href=\"/ja/docs/Games/Introduction\">ウェブ用のゲーム開発入門</a></li><li><a href=\"/ja/docs/Games/Techniques\">ゲーム開発テクニック</a></li><li><a href=\"/ja/docs/Games/Tutorials\">チュートリアル</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Games/Publishing_games\">Publishing games</a></li></ol></details></li><li class=\"section\"><a href=\"/ja/docs/Learn/Tools_and_testing\">ツールとテスト</a></li><li><details><summary>クライアントサイドウェブ開発ツール</summary><ol><li><a href=\"/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools\">クライアントサイドウェブ開発ツールの理解</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview\">クライアントサイドツールの概要</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line\">コマンドライン短期集中講座</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Package_management\">パッケージ管理の基本</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Introducing_complete_toolchain\">完全なツールチェーンの導入</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Deployment\">アプリのデプロイ</a></li></ol></details></li><li><details><summary>クライアントサイドフレームワークの概要</summary><ol><li><a href=\"/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Introduction\">クライアントサイドフレームワークの概要</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Main_features\">フレームワークの主な機能</a></li></ol></details></li><li><details><summary>React</summary><ol><li><a href=\"/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started\">React を始める</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_todo_list_beginning\">React ToDoリストをはじめる</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_components\">React アプリのコンポーネント化</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_interactivity_events_state\">React interactivity: Events and state</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_interactivity_filtering_conditional_rendering\">React interactivity: Editing, filtering, conditional rendering</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_accessibility\">Accessibility in React</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_resources\">React のリソース</a></li></ol></details></li><li><details><summary>Ember</summary><ol><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_getting_started\">Getting started with Ember</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_structure_componentization\">Ember app structure and componentization</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_interactivity_events_state\">Ember interactivity: Events, classes and state</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_conditional_footer\">Ember Interactivity: Footer functionality, conditional rendering</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_routing\">Routing in Ember</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_resources\">Ember resources and troubleshooting</a></li></ol></details></li><li><details><summary>Vue</summary><ol><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started\">Getting started with Vue</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_first_component\">Creating our first Vue component</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_rendering_lists\">Rendering a list of Vue components</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_methods_events_models\">Adding a new todo form: Vue events, methods, and models</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_styling\">Styling Vue components with CSS</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_computed_properties\">Using Vue computed properties</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_conditional_rendering\">Vue conditional rendering: editing existing todos</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_refs_focus_management\">Vue refs and lifecycle methods for focus management</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_resources\">Vue resources</a></li></ol></details></li><li><details><summary>Svelte</summary><ol><li><a href=\"/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_getting_started\">Svelte をはじめる</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_Todo_list_beginning\">Starting our Svelte to-do list app</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_variables_props\">Dynamic behavior in Svelte: working with variables and props</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_components\">Componentizing our Svelte app</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_reactivity_lifecycle_accessibility\">Advanced Svelte: Reactivity, lifecycle, accessibility</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_stores\">Working with Svelte stores</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_TypeScript\">TypeScript support in Svelte</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_deployment_next\">Deployment and next steps</a></li></ol></details></li><li><details><summary>Angular</summary><ol><li><a href=\"/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_getting_started\">Angular をはじめる</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_todo_list_beginning\">Angular todo リストアプリの事始め</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_styling\">Angular アプリのスタイリング</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_item_component\">item コンポーネントの作成</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_filtering\">To Do アイテムのフィルタリング</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_building\">Angular アプリケーションのビルドとその他のリソース</a></li></ol></details></li><li><details><summary>Git と GitHub</summary><ol><li><a href=\"/ja/docs/Learn/Tools_and_testing/GitHub\">Git と GitHub</a></li></ol></details></li><li><details><summary>ブラウザー横断テスト</summary><ol><li><a href=\"/ja/docs/Learn/Tools_and_testing/Cross_browser_testing\">ブラウザー横断テスト</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/Introduction\">はじめてのブラウザー横断テスト</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/Testing_strategies\">テスト実行のための戦略</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS\">一般的な HTML と CSS の問題への対処</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/JavaScript\">よくある JavaScript の問題の扱い</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility\">よくあるアクセシビリティの問題を扱う</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/Feature_detection\">機能検出の実装</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/Automated_testing\">自動化テストの紹介</a></li><li><a href=\"/ja/docs/Learn/Tools_and_testing/Cross_browser_testing/Your_own_automation_environment\">テスト自動化環境のセットアップ</a></li></ol></details></li><li class=\"section\"><a href=\"/ja/docs/Learn/Server-side\">サーバーサイドウェブサイトプログラミング</a></li><li><details><summary>サーバーサイドのウェブサイトプログラミングの第一歩</summary><ol><li><a href=\"/ja/docs/Learn/Server-side/First_steps\">サーバーサイドのウェブサイトプログラミングの第一歩</a></li><li><a href=\"/ja/docs/Learn/Server-side/First_steps/Introduction\">サーバーサイドの概要</a></li><li><a href=\"/ja/docs/Learn/Server-side/First_steps/Client-Server_overview\">クライアント・サーバーの概要</a></li><li><a href=\"/ja/docs/Learn/Server-side/First_steps/Web_frameworks\">サーバーサイドウェブフレームワーク</a></li><li><a href=\"/ja/docs/Learn/Server-side/First_steps/Website_security\">ウェブサイトのセキュリティ</a></li></ol></details></li><li><details><summary>Django ウェブフレームワーク (Python)</summary><ol><li><a href=\"/ja/docs/Learn/Server-side/Django\">Django ウェブフレームワーク (Python)</a></li><li><a href=\"/ja/docs/Learn/Server-side/Django/Introduction\">Django の紹介</a></li><li><a href=\"/ja/docs/Learn/Server-side/Django/development_environment\">Django 開発環境の設定</a></li><li><a href=\"/ja/docs/Learn/Server-side/Django/Tutorial_local_library_website\">Django チュートリアル: 地域図書館ウェブサイト</a></li><li><a href=\"/ja/docs/Learn/Server-side/Django/skeleton_website\">Django チュートリアル Part 2: スケルトンウェブサイトの作成</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Server-side/Django/Models\">Django Tutorial Part 3: Using models</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Server-side/Django/Admin_site\">Django Tutorial Part 4: Django admin site</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Server-side/Django/Home_page\">Django Tutorial Part 5: Creating our home page</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Server-side/Django/Generic_views\">Django Tutorial Part 6: Generic list and detail views</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Server-side/Django/Sessions\">Django Tutorial Part 7: Sessions framework</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Server-side/Django/Authentication\">Django Tutorial Part 8: User authentication and permissions</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Server-side/Django/Forms\">Django Tutorial Part 9: Working with forms</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Server-side/Django/Testing\">Django Tutorial Part 10: Testing a Django web application</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Server-side/Django/Deployment\">Django Tutorial Part 11: Deploying Django to production</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Server-side/Django/web_application_security\">Django web application security</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Server-side/Django/django_assessment_blog\">Assessment: DIY Django mini blog</a></li></ol></details></li><li><details><summary>Express ウェブフレームワーク (Node.js/JavaScript)</summary><ol><li><a href=\"/ja/docs/Learn/Server-side/Express_Nodejs\">Express ウェブフレームワーク (Node.js/JavaScript)</a></li><li><a href=\"/ja/docs/Learn/Server-side/Express_Nodejs/Introduction\">Express/Node の紹介</a></li><li><a href=\"/ja/docs/Learn/Server-side/Express_Nodejs/development_environment\">Node 開発環境の設定</a></li><li><a href=\"/ja/docs/Learn/Server-side/Express_Nodejs/Tutorial_local_library_website\">Express チュートリアル: 地域図書館のウェブサイト</a></li><li><a href=\"/ja/docs/Learn/Server-side/Express_Nodejs/skeleton_website\">Express チュートリアル Part 2: スケルトンウェブサイトの作成</a></li><li><a href=\"/ja/docs/Learn/Server-side/Express_Nodejs/mongoose\">Express チュートリアル Part 3: データベースの使用 (Mongoose を使用)</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Server-side/Express_Nodejs/routes\">Express Tutorial Part 4: Routes and controllers</a></li><li><a href=\"/ja/docs/Learn/Server-side/Express_Nodejs/Displaying_data\">Express チュートリアル Part 5: ライブラリーデータの表示</a></li><li><a href=\"/ja/docs/Learn/Server-side/Express_Nodejs/forms\">Express チュートリアル Part 6: フォームの操作</a></li><li><a class=\"only-in-en-us\" title=\"このページは現在、英語のみで利用可能です。\" href=\"/en-US/docs/Learn/Server-side/Express_Nodejs/deployment\">Express Tutorial Part 7: Deploying to production</a></li></ol></details></li><li class=\"section\"><a href=\"/ja/docs/Learn/Common_questions\">その他のリソース</a></li><li><details><summary>よくある質問</summary><ol><li><a href=\"/ja/docs/Learn/Common_questions\">よくある質問</a></li><li><a href=\"/ja/docs/Learn/HTML/Howto\">HTML を使ってよくある問題を解決する</a></li><li><a href=\"/ja/docs/Learn/CSS/Howto\">CSS を使ってよくある問題を解決する</a></li><li><a href=\"/ja/docs/Learn/JavaScript/Howto\">JavaScript のコードのよくある問題を解決する</a></li><li><a href=\"/ja/docs/Learn/Common_questions/Web_mechanics\">ウェブの仕組み</a></li><li><a href=\"/ja/docs/Learn/Common_questions/Tools_and_setup\">ツールとセットアップ</a></li><li><a href=\"/ja/docs/Learn/Common_questions/Design_and_accessibility\">デザインとアクセシビリティ</a></li></ol></details></li></ol>","sidebarMacro":"LearnSidebar","body":[{"type":"prose","value":{"id":null,"title":null,"isH3":false,"content":"<ul class=\"prev-next\">\n <li><a class=\"button secondary\" href=\"/ja/docs/Learn/CSS/Building_blocks/Selectors/Combinators\"><span class=\"button-wrap\"> 前のページ </span></a></li>\n <li><a class=\"button secondary\" href=\"/ja/docs/Learn/CSS/Building_blocks\"><span class=\"button-wrap\"> Overview: CSS の構成要素</span></a></li>\n <li><a class=\"button secondary\" href=\"/ja/docs/Learn/CSS/Building_blocks/Cascade_layers\"><span class=\"button-wrap\"> 次のページ </span></a></li>\n</ul>\n<p>このレッスンの目的は、CSS の最も基本的な概念であるカスケード、詳細度、継承について理解を深めることです。これらの概念は、CSS を HTML に適用する方法とスタイル宣言の間の競合を解決する方法を制御するものです。</p>\n<p>このレッスンは、他の記事よりもすぐに役立つことが少なく、少し学問的に見えるかもしれませんが、これらの概念を理解することは、後で多くの困難から救ってくれることでしょう。この章を注意深く作業し、概念を理解していることを確認してから、次に進むことをお勧めします。</p>\n<figure class=\"table-container\"><table>\n <tbody>\n <tr>\n <th scope=\"row\">前提条件:</th>\n <td><a href=\"/ja/docs/Learn/Getting_started_with_the_web/Installing_basic_software\">基本的なソフトウェアがインストールされている</a>こと、<a href=\"/ja/docs/Learn/Getting_started_with_the_web/Dealing_with_files\">ファイルの扱い</a>、HTML の基本(<a href=\"/ja/docs/Learn/HTML/Introduction_to_HTML\">HTML 入門</a>の学習)、CSS がどのように動作するかの考え(<a href=\"/ja/docs/Learn/CSS/First_steps\">CSS の第一歩</a>で学習)の基本的な知識を得ていること。</td>\n </tr>\n <tr>\n <th scope=\"row\">目的:</th>\n <td>カスケードと詳細度、および CSS の継承の仕組みについて学ぶ。</td>\n </tr>\n </tbody>\n</table></figure>"}},{"type":"prose","value":{"id":"競合するルール","title":"競合するルール","isH3":false,"content":"<p>CSS は <strong>Cascading Style Sheets</strong> の略で、最初の単語であるカスケード (<em>cascading</em>) を理解することは非常に重要です。カスケードのふるまいは、CSS を理解するための鍵となりえます。</p>\n<p>プロジェクトに取り組んでいるとき、要素に適用されているはずの CSS が機能していないと感じることがあります。大抵の場合、この問題は同じ要素に適用される可能性のある 2 つ のルールを作ってしまったことが原因です。<a href=\"/ja/docs/Web/CSS/Cascade\"><strong>カスケード</strong></a>および、それと密接に関連する<a href=\"/ja/docs/Web/CSS/Specificity\"><strong>詳細度</strong></a>の概念は、そのような競合が存在する際にどちらのルールを適用するかを制御するメカニズムです。実際に要素にスタイルを設定しているルールがどれなのかは期待と異なる場合があるため、このような仕組みがどのように動作するのかを理解しておく必要があります。</p>\n<p>このほかに重要なのは<a href=\"/ja/docs/Web/CSS/Inheritance\"><strong>継承</strong></a>という概念です。CSS プロパティによって、親要素の値を既定で継承するものもあれば、継承しないものもあります。これにより、予期しない動作が発生する可能性もあります。</p>\n<p>まず重要なものを簡単に見てみましょう。それぞれ順に追っていって CSS でどのように相互作用するかを見ていきます。これらはトリッキーな概念のように見えるかもしれませんが、CSS を書く練習を積んでいくと、その動作が明らかになってくるでしょう。</p>"}},{"type":"prose","value":{"id":"カスケード","title":"カスケード","isH3":true,"content":"<p>スタイルシートの<a href=\"/ja/docs/Web/CSS/Cascade\"><strong>カスケード</strong></a>は、とてもシンプルに考えるなら、これは発生元と、カスケードレイヤーと、CSS ルールの順序によるということです。同じカスケードレイヤーからの 2 つのルールが適用されており、どちらも詳細度が同じである場合、スタイルシートで最後に定義されたものが使用されます。</p>\n<p>下記の例では、<code>&lt;h1&gt;</code> 要素に適用できる 2 つのルールがあります。<code>&lt;h1&gt;</code> のコンテンツは結果的に青く色づけされています。これは、どちらのルールも同じソースにあり、同じ要素セレクターを持ち、したがって詳細度が同じですが、ソース上の順番が最後のものが勝者となるからです。</p><iframe width=\"100%\" height=\"500\" src=\"https://mdn.github.io/css-examples/learn/cascade/cascade-simple.html\" loading=\"lazy\"></iframe>"}},{"type":"prose","value":{"id":"詳細度","title":"詳細度","isH3":true,"content":"<p><a href=\"/ja/docs/Web/CSS/Specificity\">詳細度</a>とは、ある要素にどのプロパティの値を使用するかを決めるために、ブラウザーが使用するアルゴリズムです。複数のスタイルブロックに、同じプロパティを異なる値で設定する異なるセレクターがあり、同じ要素を対象としている場合、その要素に適用されるプロパティの値は、詳細度によって決定されます。詳細度とは、基本的にセレクターの選択がどの程度具体的であるかを示す指標です。</p>\n<ul>\n <li>要素セレクターは詳細度が低く、ページ上に現れるその種類のすべての要素を選択するので、あまり重みがありません。擬似要素セレクターは、通常の要素セレクターと同じ詳細度を持ちます。</li>\n <li>クラスセレクターはより詳細度が高く、ページ上にある特定の <code>class</code> 属性値を保有する要素のみを選択するので、より高い重みを持っています。属性セレクターと擬似クラスは、クラスと同じ重みを持ちます。</li>\n</ul>\n<p>下記の例では、再び <code>&lt;h1&gt;</code> 要素に適用できる 2 つのルールがあります。下記の <code>&lt;h1&gt;</code> のコンテンツは、クラスセレクター <code>main-heading</code> によりそのルールが高い詳細度を持つため、結果として赤で表示されています。たとえ、<code>&lt;h1&gt;</code> 要素のセレクターを使用したルールがソースの順序でより下に現れても、クラスセレクターを使用して定義された、より高い詳細度を持つルールが使用されることになります。</p><iframe width=\"100%\" height=\"600\" src=\"https://mdn.github.io/css-examples/learn/cascade/specificity-simple.html\" loading=\"lazy\"></iframe>\n<p>詳細度のアルゴリズムについては、後ほど説明します。</p>"}},{"type":"prose","value":{"id":"継承","title":"継承","isH3":true,"content":"<p>ここでは継承についても理解する必要があります。親要素に設定された CSS プロパティ値には、子要素に継承されるものとそうでないものがあります。</p>\n<p>例えば、ある要素に <code>color</code> と <code>font-family</code> を設定すると、異なる色やフォントの値を直接適用しない限り、その中にあるすべての要素もその色やフォントでスタイル設定されます。</p><iframe width=\"100%\" height=\"650\" src=\"https://mdn.github.io/css-examples/learn/cascade/inheritance-simple.html\" loading=\"lazy\"></iframe>\n<p>いくつかのプロパティは継承されません。例えば、要素に <a href=\"/ja/docs/Web/CSS/width\"><code>width</code></a> 50% と設定した場合、すべての子孫要素は親の幅の 50% の幅を取得しません。もしそんなことになるのら CSS を使うととてもイライラするでしょう。</p>\n<div class=\"notecard note\">\n <p><strong>メモ:</strong> MDN の CSS プロパティリファレンスページには、「公式定義」という技術情報ボックスがあり、そのプロパティに関するいくつかのデータポイント(継承されるかどうかなど)が記載されています。例として、<a href=\"/ja/docs/Web/CSS/color#%E5%85%AC%E5%BC%8F%E5%AE%9A%E7%BE%A9\">color プロパティの公式定義の節</a>を参照してください。</p>\n</div>"}},{"type":"prose","value":{"id":"これらの概念がどう連携するか理解する","title":"これらの概念がどう連携するか理解する","isH3":false,"content":"<p>これら3つの概念(カスケード、詳細度、継承)は、どの CSS がどの要素に適用されるかを制御するものです。以下の節では、これらがどのように連携して動作するのかを見ていきます。少し複雑に感じることもあるかもしれませんが、CSS を取得するにつれて覚え始めるでしょうし、忘れたときには常に詳細を調べておくことができます 経験豊富な開発者でも、すべての詳細を覚えているわけではありません。</p>\n<p>以下の動画は、Firefox の開発ツールを使用して、ページのカスケードや詳細度などを検査する方法を示しています。</p><iframe width=\"560\" height=\"315\" src=\"https://www.youtube-nocookie.com/embed/Sp9ZfSvpf7A\" title=\"YouTube video\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" loading=\"lazy\"></iframe>"}},{"type":"prose","value":{"id":"継承を理解する","title":"継承を理解する","isH3":false,"content":"<p>継承から始めましょう。次の例では <a href=\"/ja/docs/Web/HTML/Element/ul\"><code>&lt;ul&gt;</code></a> 要素があり、内部にさらに 2 つ のレベルの順序なしリストがネストされています。外側の <code>&lt;ul&gt;</code> に境界線、パディング、文字色が指定されています。</p>\n<p><code>color</code> プロパティは継承されるプロパティです。よって、<code>color</code> プロパティの値は直接の子だけでなく、間接的な子にも適用されています。つまり直接の子である <code>&lt;li&gt;</code> 、それに最初のネストされたリスト内のものにも適用されています。そして 2 番目 にネストされたリストに <code>special</code> クラスを追加し、別の色が適用されています。これは子に継承します。</p><iframe width=\"100%\" height=\"1100\" src=\"https://mdn.github.io/css-examples/learn/cascade/inheritance.html\" loading=\"lazy\"></iframe>\n<p>(前述のように)<code>width</code> や <code>margin</code> 、 <code>padding</code> 、 <code>border</code> といったプロパティは継承されるプロパティではありません。もし、このリストの例で境界線が子プロパティに掲載されていたら、すべてのリストとリスト項目に境界線が追加されることになります。</p>\n<p>CSS のプロパティのページには、そのプロパティが継承されるかどうかが掲載されていますが、プロパティの値がどのようなスタイルを設定するのかを知っていれば、直観的に同じことを推測できることが多いでしょう。</p>"}},{"type":"prose","value":{"id":"継承の制御","title":"継承の制御","isH3":true,"content":"<p>CSS は、継承を制御するための 5 つ の特別なユニバーサルプロパティ値 <em>(universal property values)</em> を提供します。すべての CSS プロパティはこれらの値を受け入れます。</p>\n<dl>\n <dt id=\"inherit\"><a href=\"/ja/docs/Web/CSS/inherit\"><code>inherit</code></a></dt>\n <dd>\n <p>選択した要素に適用されるプロパティ値を、その親要素と同じものに設定します。これは「継承を有効にする」ことを意味します。</p>\n </dd>\n <dt id=\"initial\"><a href=\"/ja/docs/Web/CSS/initial\"><code>initial</code></a></dt>\n <dd>\n <p>選択した要素に適用されるプロパティ値を、そのプロパティの<a href=\"/ja/docs/Web/CSS/initial_value\">初期値</a>に設定します。</p>\n </dd>\n <dt id=\"revert\"><a href=\"/ja/docs/Web/CSS/revert\"><code>revert</code></a></dt>\n <dd>\n <p>選択した要素に適用されるプロパティ値を、そのプロパティに適用されている既定値ではなく、ブラウザーの既定スタイル設定にリセットします。この値は、多くの場合 <a href=\"/ja/docs/Web/CSS/unset\"><code>unset</code></a> のように動作します。</p>\n </dd>\n <dt id=\"revert-layer\"><a href=\"/ja/docs/Web/CSS/revert-layer\"><code>revert-layer</code></a></dt>\n <dd>\n <p>選択した要素に適用されるプロパティ値を、前回の<a href=\"/ja/docs/Web/CSS/@layer\">カスケードレイヤー</a>で設定された値にリセットします。</p>\n </dd>\n <dt id=\"unset\"><a href=\"/ja/docs/Web/CSS/unset\"><code>unset</code></a></dt>\n <dd>\n <p>プロパティを自然な値にリセットします。つまり、プロパティが自然に継承される場合は <code>inherit</code> のように動作し、そうでない場合は <code>initial</code> のように動作します。</p>\n </dd>\n</dl>\n<div class=\"notecard note\">\n <p><strong>メモ:</strong> それぞれについて、またこれらがどのように動作するのかについては、<a href=\"/ja/docs/Web/CSS/Cascade#%E3%82%AA%E3%83%AA%E3%82%B8%E3%83%B3%E3%81%AE%E7%A8%AE%E9%A1%9E\">オリジンの種類</a>を参照してください。</p>\n</div>\n<p>リンクのリストを見ると、ユニバーサル値 (universal values) がどのように機能するかを調べることができます。以下のライブサンプルでは、CSS に変更を加えて何が起こるかを確認できます。HTML と CSS を理解するには、実際にコードを試すのが最善の方法です。</p>\n<p>例えば次のようになります。</p>\n<ol>\n <li>2 番目 のリストアイテムには、<code>my-class-1</code> が適用されています。これは、内部にネストされた <code>&lt;a&gt;</code> 要素に色を継承 (<code>inherit</code>) します。ルールを削除すると、リンクの色はどのように変わるでしょうか?</li>\n <li>3 つ目と 4 つ目のリンクがなぜそのような色になっているのか、お分かりでしょうか? 3 つ目のリンクは <code>initial</code> に設定されています。これはプロパティの初期値(この場合は黒)を使用し、ブラウザーのリンクの既定値である青は使用しない、という意味です。4 番目のリンクは <code>unset</code> に設定されており、これはリンクテキストが親要素の色である緑を使用することを意味しています。</li>\n <li><code>&lt;a&gt;</code> 要素に新しい色を定義した場合、どのリンクの色が変わるでしょうか。例えば、<code>a { color: red; }</code> のようにした場合です。</li>\n <li>次の節の「すべてのプロパティ値のリセット」を読んだ後、また戻ってきて <code>color</code> プロパティを <code>all</code> に変更してみてください。2 つ目のリンクが新しい行になり、箇条書きがあることに注目してください。どのようなプロパティが継承されていると思いますか?</li>\n</ol><iframe width=\"100%\" height=\"800\" src=\"https://mdn.github.io/css-examples/learn/cascade/keywords.html\" loading=\"lazy\"></iframe>"}},{"type":"prose","value":{"id":"すべてのプロパティ値のリセット","title":"すべてのプロパティ値のリセット","isH3":true,"content":"<p>CSS の一括指定プロパティ <a href=\"/ja/docs/Web/CSS/all\"><code>all</code></a> を使用して、これらの継承値の 1 つ を(ほぼ)すべてのプロパティに一度に適用できます。その値として、いずれかの継承値(<code>inherit</code>、<code>initial</code>、<code>revert</code>、<code>revert-layer</code>、<code>unset</code> のいずれか)を指定することができます。新しく変更を開始する際、既知の開始点に戻ることができるように、変更されたスタイルを元に戻す便利な方法です。</p>\n<p>以下の例では 2 つ のブロック引用 (blockquote) 要素があります。最初のスタイルは blockquote 要素自体に適用されます。2 つ目には <code>all</code> に <code>unset</code> を設定するように blockquote に適用されるクラスがあります。</p><iframe width=\"100%\" height=\"800\" src=\"https://mdn.github.io/css-examples/learn/cascade/all.html\" loading=\"lazy\"></iframe>\n<p><code>all</code> の値を他の有効な値に設定してみて、違いを観察してみてください。</p>"}},{"type":"prose","value":{"id":"カスケードを理解する","title":"カスケードを理解する","isH3":false,"content":"<p>これで、HTML の構造の奥深くにある段落が、本体に適用されている CSS と同じ色になるのは、継承のためだということが理解できたと思います。入門編で、文書内の任意の場所で何かに適用される CSS を変更する方法について理解しました。 CSS を要素に割り当てるか、クラスを作成するかです。これで、複数のスタイルブロックが同じ要素に異なる形で同じプロパティを適用する場合、どの CSS ルールが適用されるかをカスケードで定義する方法を見て取ることができます。</p>\n<p>考慮すべき 3 つ の要因がありますが、ここでは重要度の高い順にリストしています。前にあるものは、後のものを無効にします。</p>\n<ol>\n <li><strong>ソース順</strong> (Source order)</li>\n <li><strong>詳細度</strong> (Specificity)</li>\n <li><strong>重要度</strong> (Importance)</li>\n</ol>\n<p>これらを下から順に、ブラウザーがどうやって CSS を適用しているのかを見ていきましょう。</p>"}},{"type":"prose","value":{"id":"ソース順","title":"ソース順","isH3":true,"content":"<p>ソース順がカスケードにとって重要であることは、既に見たとおりです。複数のルールを保有し、それらのルールがすべてまったく同じ重みを持っている場合、CSS の最後に来るルールが優先されます。これは、要素自体に近いルールが、最後のルールが勝利して要素のスタイルを取得するまで、前のルールを上書きすると考えることができます。</p>\n<p>ソース順が問題になるのは、ルールの詳細度に対する重みが同じである場合だけなので、詳細度について考えてみましょう。</p>"}},{"type":"prose","value":{"id":"詳細度_2","title":"詳細度","isH3":true,"content":"<p>あるルールがスタイルシートの後半に来ることは分かっていても、より前の、競合するルールが適用される状況がよくあります。これは、前のルールが <strong>より高い詳細度</strong> を有しているため、つまり、より詳細であるため、ブラウザーが要素をスタイル設定すべきものとして選択した場合に起こります。</p>\n<p>このレッスンで以前に見たように、クラスセレクターは要素セレクターよりも重みがあるため、クラスのスタイルブロックで定義されたプロパティは、要素のスタイルブロックで定義されたものを上書きすることになります。</p>\n<p>ここで注意したいのは、セレクターとそれが選択するテキストや成分に適用されるルールに注目していますが、上書きされるのはルール全体ではなく、複数の場所で宣言されているプロパティだけだということです。</p>\n<p>この動作は、CSS の繰り返しを避けるのに役立ちます。一般的な方法としては、基本的な要素には一般的なスタイルを定義し、異なる形の要素にはクラスを作成することです。例えば、下記のスタイルシートでは、レベル 2 の見出しに対して一般的なスタイルを定義し、その後、一部のプロパティと値のみを変更するクラスをいくつか作成しています。最初に定義された値はすべての見出しに適用され、その後、より詳細度の高い値がクラスを持つ見出しに適用されます。</p><iframe width=\"100%\" height=\"1000\" src=\"https://mdn.github.io/css-examples/learn/cascade/mixing-rules.html\" loading=\"lazy\"></iframe>\n<p>ブラウザーが詳細度を計算する方法を見てみましょう。要素セレクターの詳細度は低く、クラスで上書きできることはすでにわかったはずです。基本的に、セレクターの重みはポイント単位の値で与えられ、これらを合計して特定セレクターの重みが与えられて、他の一致するものと相対して評価することができます。</p>\n<p>セレクターが持つ詳細度の量は、3 つ の異なる値(またはコンポーネント)を使用して測定されます。これは、ID、クラス、要素の列を、それぞれ百の位、十の位、一の位として考えることができます。</p>\n<ul>\n <li><strong>ID</strong>: この列は、全体のセレクターの中に含まれるそれぞれの ID セレクターに対して 1 点ずつ評価します。</li>\n <li><strong>クラス</strong>: この列は、クラスセレクター、属性セレクター、擬似クラスが全体のセレクターの中に含まれている場合に 1 点ずつ評価します。</li>\n <li><strong>要素</strong>: この列は、要素セレクターまたは擬似要素が全体のセレクターの中に含まれている場合に 1 点ずつ評価します。</li>\n</ul>\n<div class=\"notecard note\">\n <p><strong>メモ:</strong> 全称セレクター (<a href=\"/ja/docs/Web/CSS/Universal_selectors\"><code>*</code></a>)、<a href=\"/ja/docs/Learn/CSS/Building_blocks/Selectors/Combinators\">結合子</a> (<code>+</code>、<code>&gt;</code>、<code>~</code>、' ')、詳細度調整セレクター<a href=\"/ja/docs/Web/CSS/:where\"><code>:where()</code></a>とその引数は、詳細度に影響しません。</p>\n</div>\n<p>否定 (<a href=\"/ja/docs/Web/CSS/:not\"><code>:not()</code></a>)、関係セレクター (<a href=\"/ja/docs/Web/CSS/:has\"><code>:has()</code></a>)、match-any (<a href=\"/ja/docs/Web/CSS/:is\"><code>:is()</code></a>) 擬似クラス、 <a href=\"/ja/docs/Web/CSS/CSS_nesting/Nesting_and_specificity\">CSS 入れ子</a>自身は、詳細度に影響を与えませんが、それらの引数や入れ子ルールには影響を及ぼします。それぞれが詳細度重みアルゴリズムに寄与する詳細度の重みは、最も大きな重みを持っている引数または入れ子ルールのセレクターの詳細度です。</p>\n<p>次の表でわかりやすいいくつかの例を示します。これらを試してみて、なぜ詳細度が与えられるのかをしっかり理解してください。セレクターについてはまだ詳しく説明していませんが、MDN の <a href=\"/ja/docs/Web/CSS/CSS_selectors/Selectors_and_combinators\">セレクターリファレンス</a>で詳細を参照することができます。</p>\n<figure class=\"table-container\"><table>\n <thead>\n <tr>\n <th>セレクター</th>\n <th>ID</th>\n <th>クラス</th>\n <th>要素</th>\n <th>詳細度の合計</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>h1</code></td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>0-0-1</td>\n </tr>\n <tr>\n <td><code>h1 + p::first-letter</code></td>\n <td>0</td>\n <td>0</td>\n <td>3</td>\n <td>0-0-3</td>\n </tr>\n <tr>\n <td><code>li &gt; a[href*=\"en-US\"] &gt; .inline-warning</code></td>\n <td>0</td>\n <td>2</td>\n <td>2</td>\n <td>0-2-2</td>\n </tr>\n <tr>\n <td><code>#identifier</code></td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>1-0-0</td>\n </tr>\n <tr>\n <td><code>button:not(#mainBtn, .cta</code>)</td>\n <td>1</td>\n <td>0</td>\n <td>1</td>\n <td>1-0-1</td>\n </tr>\n </tbody>\n</table></figure>\n<p>先に進む前に、実例を見てみましょう。</p><iframe width=\"100%\" height=\"800\" src=\"https://mdn.github.io/css-examples/learn/cascade/specificity-boxes.html\" loading=\"lazy\"></iframe>\n<p>何が起こっているのでしょうか?まず、この例の最初の 7 つ のルールにのみ関心があり、お気づきのように、各ルールの前に詳細度の値をコメントしてあります。</p>\n<ul>\n <li>最初の 2 つ のセレクターはリンクの背景色について競合しています。2 番目 のセレクターには ID セレクター があるのでそれが優先され、青になります。この詳細度は 2-0-1 であり、もう一方は 1-0-1 です。</li>\n <li>セレクター 3 と 4 は、リンクの文字色のスタイル設定をめぐって競合しています。2 つ目のセレクターが勝って、テキストを白にします。これは、要素セレクターが 1 つ少ないものの、足りないセレクターをクラスセレクターに入れ替えたためで、これはいくつの要素セレクターよりも比重が大きいからです。勝者の詳細度は、1-1-3 対 1-0-4 です。</li>\n <li>セレクター 5 ~ 7 は、マウスを当てたときのリンクの境界線のスタイル設定をめぐって競合しています。セレクター 6 は、0-2-3 対 0-2-4 の詳細度でセレクター 5 に明らかに負けています。セレクター 6 には、連鎖する要素のセレクターが 1 つ少ないからです。しかし、セレクター 7 はセレクター 5 と同じ数のサブセレクターを持ちますが、要素がクラスセレクターに置き換えられているため、セレクター 5 と 6 の両方に勝っています。つまり、0-3-3 の詳細度が 0-2-3、0-2-4 に対して勝利します。</li>\n</ul>\n<div class=\"notecard note\">\n <p><strong>メモ:</strong> セレクターの種類ごとにはそれぞれレベルの詳細度があり、より低い詳細度レベルのセレクターによって上書きすることはできません。例えば <em>100 万 の</em><strong>クラス</strong>セレクターを組み合わせても、<em>1 つ の</em> <strong>ID</strong> セレクターのルールを上書きすることはできません。</p>\n <p>詳細度を評価する最良の方法は、詳細度の高いものから始めて、必要に応じて低いものへ移動しながら、個別に点数をつけることです。ある列のセレクターのスコアが同点である場合のみ、次の列を評価する必要があります。そうでない場合は、詳細度の低いセレクターは詳細度の高いセレクターを上書きすることができないため、無視することができます。</p>\n</div>"}},{"type":"prose","value":{"id":"インラインスタイル","title":"インラインスタイル","isH3":true,"content":"<p>インラインスタイル、つまり <a href=\"/ja/docs/Web/HTML/Global_attributes#style\"><code>style</code></a> 属性内のスタイル宣言は、その詳細度に関わらず、すべての通常のスタイルよりも優先されます。このような宣言はセレクターがありませんが、その固有性は 1-0-0-0 と解釈され、セレクターにいくつの ID があっても、常に他のどの詳細度よりも高い重みを持ちます。</p>"}},{"type":"prose","value":{"id":"!important","title":"!important","isH3":true,"content":"<p>インラインスタイルであっても、上記のすべての計算を覆すために使用できる特別なCSSがあります - <code>!important</code>フラグです。しかし、使用する際にはとても注意が必要です。このフラグは、個々のプロパティと値のペアを最も詳細なルールとするために使用され、それによって通常のインラインスタイルを含むカスケードのルールが上書きされます。</p>\n<div class=\"notecard note\">\n <p><strong>メモ:</strong> <code>!important</code>フラグの存在を知っておくと、他の人のコードでこのフラグに出会ったときに、それが何であるかを知ることができるので便利です。<strong>しかし、絶対に必要でない限り使用しないことを強くお勧めします。</strong> <code>!important</code> フラグはカスケードの通常の動作方法を変更するので、特に大きなスタイルシートでは、CSS の問題をデバッグするのが実に作業しづらくなる可能性があります。</p>\n</div>\n<p>例を見てみましょう。2 つの段落があり、そのうちの 1 つ には ID がついています。</p><iframe width=\"100%\" height=\"800\" src=\"https://mdn.github.io/css-examples/learn/cascade/important.html\" loading=\"lazy\"></iframe>\n<p>何が起きているのかを見てみましょう。理解しにくい場合は、いくつかのプロパティを削除しながら、どうなるか見てみてください。</p>\n<ol>\n <li>3 番目のルールでは <a href=\"/ja/docs/Web/CSS/color\"><code>color</code></a> と <a href=\"/ja/docs/Web/CSS/padding\"><code>padding</code></a> が適用されていますが、<a href=\"/ja/docs/Web/CSS/background-color\"><code>background-color</code></a> は適用されていないことようです。なぜでしょうか?ソースオーダーの後の方は、普通は前の方のルールをオーバーライドするため、その観点では 3 つ すべてが適用されるはずです。</li>\n <li>とはいえ、クラスセレクターは要素セレクターよりも詳細度が高いため前者のルールが優先されます。</li>\n <li>両方の要素には <code>better</code> という <a href=\"/ja/docs/Web/HTML/Global_attributes#class\"><code>class</code></a> がありますが、2 番目 の要素には <code>winning</code> という <a href=\"/ja/docs/Web/HTML/Global_attributes#id\"><code>id</code></a> もあります。ID はクラスよりも<strong>より高い詳細度</strong>があるため(ページ上では ID を持つ要素は一意に 1 つ しか置けないのに対し、同じクラスを持つ多くの要素がありえるため、ID セレクターの方が<strong>非常に限定的</strong>になります)、2 番目の要素には赤い背景色と 1 ピクセルの黒い境界線が適用され、最初の要素についてはクラスで指定されたように灰色の背景色となり、境界線は消えます。</li>\n <li>2 番目 の要素は赤い背景が適用されていますが、あるはずの境界線はありません。なぜでしょうか? 2 つ目のルールに <code>!important</code> フラグがあるためです。<code>border: none</code> の後に <code>!important</code> フラグを追加すると、ID セレクターの方がより高い詳細度であっても、この宣言が前のルールの <code>border</code> 値に勝利するということです。</li>\n</ol>\n<div class=\"notecard note\">\n <p><strong>メモ:</strong> important 宣言を上書きする唯一の方法は、同じ詳細度を持つ別の important 宣言をソースの順番で後に記載するか、より高い詳細度を持つものを記載するか、前のカスケードレイヤーに important 宣言を記載することです(まだ、カスケードレイヤーについて触れていません)。</p>\n</div>\n<p><code>!important</code> フラグを使用しなければならない状況の 1 つ としては、コアにある CSS モジュールを編集できない CMS で作業している等で、他の方法では難しい場合にスタイルを実際にオーバーライドしたい場合等があります。でも本当に、回避できる場合は使用しないでください。</p>"}},{"type":"prose","value":{"id":"css_の位置の効果","title":"CSS の位置の効果","isH3":false,"content":"<p>最後に、CSS 宣言の優先順位は、それがどのスタイルシートとカスケードレイヤーで指定されるかに依存することに注意することが重要です。</p>\n<p>ユーザーがカスタムスタイルシートを設定して、開発者のスタイルを上書きすることは可能です。例えば、視覚的な障碍を持つユーザーが、アクセスするすべてのウェブページのフォントサイズを通常の 2 倍に設定して、読みやすくすることができます。</p>\n<p>カスケードレイヤーで開発者のスタイルを宣言することも可能です。レイヤーで宣言されたスタイルをレイヤー以外のスタイルで上書きしたり、先に宣言されたレイヤーのスタイルを後のレイヤーで宣言されたスタイルで上書きしたりすることが可能です。例えば、開発者としてサードパーティのスタイルシートを編集することはできないかもしれませんが、外部スタイルシートをカスケードレイヤーにインポートすることで、サードパーティのセレクターの詳細度を気にせず、インポートしたスタイルをすべて簡単に上書きすることができます。</p>"}},{"type":"prose","value":{"id":"宣言の上書きの順","title":"宣言の上書きの順","isH3":true,"content":"<p>競合する宣言は、以下の順序で適用され、後に適用されたものが先に適用されたものを上書きします。</p>\n<ol>\n <li>ユーザーエージェントのスタイルシートにおける宣言(例えば、他にスタイルが設定されていない場合に使用される、ブラウザーの既定スタイル)。</li>\n <li>ユーザースタイルシート(ユーザーが設定したカスタムスタイル)内の通常の宣言。</li>\n <li>作成者スタイルシートでの通常の宣言(これはウェブ開発者である私たちが設定したスタイルです)。</li>\n <li>作成者スタイルシートにおける important 宣言。</li>\n <li>ユーザースタイルシートにおける important 宣言。</li>\n <li>ユーザーエージェントスタイルシートにおける important 宣言。</li>\n</ol>\n<div class=\"notecard note\">\n <p><strong>メモ:</strong> 優先順位は <code>!important</code> でフラグづけされたスタイルでは逆転します。ウェブ開発者のスタイルシートがユーザーのスタイルシートを上書きするのは理にかなっているので、デザインは意図したとおりに保たれます。しかし、上記のように、ユーザーがウェブ開発者のスタイルを上書きするのに有益な理由がある場合もあり、その場合はルールに <code>!important</code> を使用して実現することができます。</p>\n</div>"}},{"type":"prose","value":{"id":"カスケードレイヤーの順序","title":"カスケードレイヤーの順序","isH3":true,"content":"<p><a href=\"/ja/docs/Web/CSS/@layer\">カスケードレイヤー</a>は高度なトピックで、すぐにこの機能を使用することはないでしょうが、レイヤーがどのようにカスケードされるかを理解することは重要です。</p>\n<p>CSS をカスケードレイヤーで宣言する場合、優先順位はレイヤーを宣言した順番で決まります。どのレイヤーの外でも宣言された CSS スタイルは、それらのスタイルが宣言された順に、あたかも最後に宣言されたレイヤーであるかのように、無名のレイヤーに結合されます。競合する通常の(重要でない)スタイルでは、後から定義されたレイヤーが先に定義されたレイヤーより優先されます。しかし、<code>!important</code> が付けられたスタイルでは、順序が逆転し、より早いレイヤーの重要なスタイルが、後続のレイヤーまたは任意のレイヤーの外側で宣言された重要なスタイルより優先されます。インラインスタイルは、レイヤーに関係なく、すべての作成者スタイルよりも優先されます。</p>\n<p>別々の形で複数のスタイルブロックを持っており、単一の要素のプロパティに競合する値を提供している場合、レイヤーが宣言されている順序で優先順位が決定されます。レイヤー間の詳細度は重要ではありませんが、単一のレイヤー内での詳細度は依然として重要です。</p><iframe width=\"100%\" height=\"800\" src=\"https://mdn.github.io/css-examples/learn/cascade/cascade-layers.html\" loading=\"lazy\"></iframe>\n<p>何が起こっているのかを理解するために、上の例からいくつかのことを説明してみましょう。<code>firstLayer</code> と <code>secondLayer</code> の 2 つのレイヤーが順に宣言されました。たとえ <code>secondLayer</code> の詳細度が最も高いとしても、その宣言のプロパティは使用されません。なぜか?レイヤー化されていない通常のスタイルは、詳細度に関係なく、レイヤー化された通常のスタイルよりも優先され、重要なレイヤーのスタイルは、これまた詳細度に関係なく、後のレイヤーで宣言された重要なスタイルより優先されるからです。</p>\n<p>この例の CSS の最初の行を <code>@layer secondLayer, firstLayer;</code> と変更すると、レイヤーの宣言順序が変わり、<code>firstLayer</code> の重要なスタイルはすべて <code>secondLayer</code> でそれぞれの値に変更されることになります。</p>"}},{"type":"prose","value":{"id":"スコープ近接性","title":"スコープ近接性","isH3":true,"content":"<p>もう一つ、すぐに使用することはないかもしれませんが、将来的に理解する必要があるかもしれない高度なトピックに <a href=\"/ja/docs/Web/CSS/@scope\"><code>@scope</code></a> があります。これは<a href=\"/ja/docs/Web/CSS/At-rule\">アットルール</a>で、ページ上の HTML の固有のサブセクションにのみ適用されるルールのブロックを作成することができます。例えば、 <a href=\"/ja/docs/Web/HTML/Element/img\"><code>&lt;img&gt;</code></a> 要素が <code>feature</code> クラスのある要素の中に入れ子になっている場合にのみ適用されるスタイルを指定します。</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">css</span></div><pre class=\"brush: css notranslate\"><code>@scope (.feature) {\n img {\n border: 2px solid black;\n display: block;\n }\n}\n</code></pre></div>\n<p><strong>スコープ近接性</strong>は、スコープされた要素間の競合を解決するメカニズムです。スコープ近接性は、2 つのスコープに競合するスタイル設定がある場合、 DOM ツリー階層からスコープルートへの移動数が最も少ないスタイルが優先されるという状態です。詳細と例は <a href=\"/ja/docs/Web/CSS/@scope#scope_%E3%81%AE%E7%AB%B6%E5%90%88%E3%81%AE%E8%A7%A3%E6%B1%BA%E6%96%B9%E6%B3%95\"><code>@scope</code> の競合の解決方法</a>を参照してください。</p>\n<div class=\"notecard note\">\n <p><strong>メモ:</strong> スコープの近接性はソースの順序よりも優先されますが、<a href=\"/ja/docs/Web/CSS/important\">重要度</a>、<a href=\"/ja/docs/Learn/CSS/Building_blocks/Cascade_layers\">レイヤー</a>、<a href=\"/ja/docs/Web/CSS/Specificity\">詳細度</a>のような他にも優先度の高い仕様があれば、そちらが優先されます。</p>\n</div>"}},{"type":"prose","value":{"id":"スキルテスト","title":"スキルテスト","isH3":false,"content":"<p>この記事の最後まで達しましたが、最も大事な情報を覚えていますか?次に移動する前に、この情報を覚えているか検証するテストがあります。<a href=\"/ja/docs/Learn/CSS/Building_blocks/Cascade_tasks\">スキルテスト: カスケード</a>を見てください。</p>"}},{"type":"prose","value":{"id":"まとめ","title":"まとめ","isH3":false,"content":"<p>この記事の内容をほぼ理解できたなら、よくやったと言えます。CSS の基本的な仕組みに慣れることには、着手できたのではないでしょうか。次は、<a href=\"/ja/docs/Learn/CSS/Building_blocks/Cascade_layers\">カスケードレイヤー</a>について深く考えてみましょう。</p>\n<p>カスケード、詳細度、継承を完全に理解していなくても心配する必要はありません。このコースでこれまで取り上げてきたなかで、間違いなく最も複雑なことであり、プロのウェブ開発者でさえもたまに扱いにくく感じるものです。このコースを続行していくなかで、この記事にときどき戻り、それについて考え続けることをお勧めします。</p>\n<p>スタイルが期待どおりに適用されないという奇妙な問題に出くわした場合は、この記事を参照してください。詳細度の問題である可能性があります。</p><ul class=\"prev-next\">\n <li><a class=\"button secondary\" href=\"/ja/docs/Learn/CSS/Building_blocks/Selectors/Combinators\"><span class=\"button-wrap\"> 前のページ </span></a></li>\n <li><a class=\"button secondary\" href=\"/ja/docs/Learn/CSS/Building_blocks\"><span class=\"button-wrap\"> Overview: CSS の構成要素</span></a></li>\n <li><a class=\"button secondary\" href=\"/ja/docs/Learn/CSS/Building_blocks/Cascade_layers\"><span class=\"button-wrap\"> 次のページ </span></a></li>\n</ul>"}}],"toc":[{"text":"競合するルール","id":"競合するルール"},{"text":"これらの概念がどう連携するか理解する","id":"これらの概念がどう連携するか理解する"},{"text":"継承を理解する","id":"継承を理解する"},{"text":"カスケードを理解する","id":"カスケードを理解する"},{"text":"CSS の位置の効果","id":"css_の位置の効果"},{"text":"スキルテスト","id":"スキルテスト"},{"text":"まとめ","id":"まとめ"}],"summary":"このレッスンの目的は、CSS の最も基本的な概念であるカスケード、詳細度、継承について理解を深めることです。これらの概念は、CSS を HTML に適用する方法とスタイル宣言の間の競合を解決する方法を制御するものです。","popularity":0,"modified":"2024-07-28T07:15:15.000Z","other_translations":[{"locale":"de","title":"Kaskade, Spezifität und Vererbung","native":"Deutsch"},{"locale":"en-US","title":"Cascade, specificity, and inheritance","native":"English (US)"},{"locale":"es","title":"Cascada y herencia","native":"Español"},{"locale":"fr","title":"Cascade, spécificité et héritage","native":"Français"},{"locale":"ko","title":"계단식 및 상속","native":"한국어"},{"locale":"pt-BR","title":"Cascata, especificidade e herança","native":"Português (do Brasil)"},{"locale":"ru","title":"Каскад и наследование","native":"Русский"},{"locale":"zh-CN","title":"层叠、优先级与继承","native":"中文 (简体)"}],"pageType":"unknown","source":{"folder":"ja/learn/css/building_blocks/cascade_and_inheritance","github_url":"https://github.com/mdn/translated-content/blob/main/files/ja/learn/css/building_blocks/cascade_and_inheritance/index.md","last_commit_url":"https://github.com/mdn/translated-content/commit/02b65ac8ec40dc5933c3ec60bcbcec2d40cc096f","filename":"index.md"},"short_title":"カスケード、詳細度、継承","parents":[{"uri":"/ja/docs/Learn","title":"ウェブ開発を学ぶ"},{"uri":"/ja/docs/Learn/CSS","title":"CSS を用いた HTML のスタイル設定を学ぶ"},{"uri":"/ja/docs/Learn/CSS/Building_blocks","title":"CSS の構成要素"},{"uri":"/ja/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance","title":"カスケード、詳細度、継承"}],"pageTitle":"カスケード、詳細度、継承 - ウェブ開発を学ぶ | MDN","noIndexing":false}}</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10