CSSã¹ã¿ãã«ãŒã«ã解説ããã¬ãŒã¹ãã«ããŒCSSå®çŸ©ãäœæããWebã¢ããªã±ãŒã·ã§ã³ã®å¹æçãªåäœãã¹ããšçµ±åãã¹ããå¯èœã«ãã匷åãªãã¯ããã¯ã§ãã
CSSã¹ã¿ãã«ãŒã«ïŒå ç¢ãªãã¹ãã®ããã®ãã¬ãŒã¹ãã«ããŒå®çŸ©
Webéçºã®äžçã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ä¿¡é Œæ§ãšèŠèŠçãªäžè²«æ§ã確ä¿ããããšãæéèŠèª²é¡ã§ãã JavaScriptã®ãã¹ããããæ³šç®ãããŸãããCSSã®ãã¹ãã¯ãã°ãã°èŠéããããã¡ã§ãã ããããç¹ã«è€éãªã³ã³ããŒãã³ãã«ãããŠãCSSã®åäœãæ€èšŒããããšã¯ãæŽç·Žãããäºæž¬å¯èœãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããã«äžå¯æ¬ ã§ãã ãããå®çŸããããã®åŒ·åãªãã¯ããã¯ã®1ã€ããCSSã¹ã¿ãã«ãŒã«ã§ãã
CSSã¹ã¿ãã«ãŒã«ãšã¯ïŒ
CSSã¹ã¿ãã«ãŒã«ã¯ãæ¬è³ªçã«ãã¹ãäžã«äœ¿çšããããã¬ãŒã¹ãã«ããŒCSSå®çŸ©ã§ãã ç¹å®ã®ã³ã³ããŒãã³ããŸãã¯èŠçŽ ããããã©ã«ãã®ã¹ã¿ã€ã«ãç°¡ç¥åãŸãã¯å¶åŸ¡ãããã¹ã¿ã€ã«ã®ã»ããã§äžæžãããããšã«ãããåé¢ã§ããŸãã ãã®åé¢ã«ãããã¢ããªã±ãŒã·ã§ã³å šäœã®CSSã¢ãŒããã¯ãã£ã®è€éããšã¯ç¬ç«ããŠãäºæž¬å¯èœãªç°å¢ã§ã³ã³ããŒãã³ãã®åäœããã¹ãã§ããŸãã
ããããç¹å®ã®èŠçŽ ã«éåžžé©çšãããå®éã®CSSã«ãŒã«ã眮ãæããããè£å®ããããã«ããã¹ãç°å¢ã«æ³šå ¥ããããããŒãCSSã«ãŒã«ãšèããŠãã ããã ãã®ã¹ã¿ãã«ãŒã«ã¯éåžžãè²ãèæ¯è²ãããŒããŒã衚瀺ãªã©ã®åºæ¬çãªããããã£ãæ¢ç¥ã®å€ã«èšå®ããã³ã³ããŒãã³ãã®ã¹ã¿ã€ãªã³ã°ããžãã¯ãå¶åŸ¡ãããæ¡ä»¶äžã§æ£ããæ©èœããŠããããšã確èªã§ããããã«ããŸãã
ãªãCSSã¹ã¿ãã«ãŒã«ã䜿çšããã®ãïŒ
CSSã¹ã¿ãã«ãŒã«ã¯ããã¹ãã¯ãŒã¯ãããŒã§ããã€ãã®éèŠãªå©ç¹ãæäŸããŸãã
- åé¢ïŒ ã³ã³ããŒãã³ãã®ããã©ã«ãã®ã¹ã¿ã€ã«ãäžæžãããããšã«ãããã¢ããªã±ãŒã·ã§ã³å ã®ä»ã®CSSã«ãŒã«ã®åœ±é¿ããåé¢ããŸãã ããã«ãããæœåšçãªå¹²æžãæé€ããã¹ã¿ã€ãªã³ã°ã®åé¡ã®åå ãç¹å®ãããããªããŸãã
- äºæž¬å¯èœæ§ïŒ ã¹ã¿ãã«ãŒã«ã¯ãäºæž¬å¯èœãªãã¹ãç°å¢ãäœæãããã¹ããã¢ããªã±ãŒã·ã§ã³ã®CSSã®äºæž¬äžå¯èœãªå€åã®åœ±é¿ãåããªãããã«ããŸãã
- ãã¹ãã®ç°¡çŽ åïŒ éãããã¹ã¿ã€ã«ã®ã»ããã«çŠç¹ãåœãŠãããšã§ããã¹ããç°¡çŽ åããçè§£ãããããä¿å®ããããããããšãã§ããŸãã
- ã¹ã¿ã€ãªã³ã°ããžãã¯ã®æ€èšŒïŒ ã¹ã¿ãã«ãŒã«ã䜿çšãããšãã³ã³ããŒãã³ãã®ã¹ã¿ã€ãªã³ã°ããžãã¯ïŒç¶æ ãpropsã«åºã¥ãæ¡ä»¶ä»ãã¹ã¿ã€ãªã³ã°ãªã©ïŒãæ£ããæ©èœããŠããããšã確èªã§ããŸãã
- ã³ã³ããŒãã³ãããŒã¹ã®ãã¹ãïŒ åã ã®ã³ã³ããŒãã³ãã®ã¹ã¿ã€ãªã³ã°ã®äžè²«æ§ã確ä¿ããããšãäžå¯æ¬ ãªã³ã³ããŒãã³ãããŒã¹ã®ã¢ãŒããã¯ãã£ã§ã¯éåžžã«è²Žéã§ãã
CSSã¹ã¿ãã«ãŒã«ã䜿çšããã¿ã€ãã³ã°
CSSã¹ã¿ãã«ãŒã«ã¯ãç¹ã«æ¬¡ã®ã·ããªãªã§åœ¹ç«ã¡ãŸãã
- åäœãã¹ãïŒ åã ã®ã³ã³ããŒãã³ããåé¢ããŠãã¹ãããå Žåãã¹ã¿ãã«ãŒã«ã䜿çšããŠãå€éšCSSã¹ã¿ã€ã«ã«å¯Ÿããã³ã³ããŒãã³ãã®äŸåé¢ä¿ãã¢ãã¯ã§ããŸãã
- çµ±åãã¹ãïŒ è€æ°ã®ã³ã³ããŒãã³ãéã®çžäºäœçšããã¹ãããå Žåãã¹ã¿ãã«ãŒã«ã䜿çšããŠãããã³ã³ããŒãã³ãã®å€èгãå¶åŸ¡ããªãããå¥ã®ã³ã³ããŒãã³ãã®åäœã«çŠç¹ãåœãŠãããšãã§ããŸãã
- ååž°ãã¹ãïŒ ã¹ã¿ã€ãªã³ã°ååž°ã®åå ãç¹å®ããå Žåãã¹ã¿ãã«ãŒã«ã䜿çšããŠãåé¡ã®ããã³ã³ããŒãã³ããåé¢ãããã®ã¹ã¿ã€ã«ãæåŸ ã©ããã«åäœããŠããããšã確èªã§ããŸãã
- ã¬ã¹ãã³ã·ããã¶ã€ã³ã®ãã¹ãïŒ ã¹ã¿ãã«ãŒã«ã¯ãããŸããŸãªç»é¢ãµã€ãºãŸãã¯ããã€ã¹ã®åããã·ãã¥ã¬ãŒãããŠãã³ã³ããŒãã³ãã®å¿çæ§ããã¹ãã§ããŸãã ç¹å®ã®å¯žæ³ã匷å¶ããããã¡ãã£ã¢ã¯ãšãªãç°¡ç¥åãããããŒãžã§ã³ã§äžæžããããããããšã§ãããŸããŸãªããã€ã¹ã§äžè²«ããåäœãä¿èšŒã§ããŸãã
- ããŒãåãããã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãïŒ è€æ°ã®ããŒããæã€ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãã¹ã¿ãã«ãŒã«ã䜿çšããŠç¹å®ã®ããŒãã®ã¹ã¿ã€ã«ã匷å¶ããã³ã³ããŒãã³ããç°ãªãããŒãã®äžã§æ£ããã¬ã³ããªã³ã°ãããããšã確èªã§ããŸãã
CSSã¹ã¿ãã«ãŒã«ã®å®è£ æ¹æ³
CSSã¹ã¿ãã«ãŒã«ã®å®è£ ã«ã¯ãéåžžãæ¬¡ã®æé ãå«ãŸããŸãã
- ã¿ãŒã²ããèŠçŽ ã®èå¥ïŒ åé¢ããŠãã¹ãããç¹å®ã®èŠçŽ ãŸãã¯ã³ã³ããŒãã³ããæ±ºå®ããŸãã
- ã¹ã¿ãã«ãŒã«ã®äœæïŒ ã¿ãŒã²ããèŠçŽ ã®ããã©ã«ãã®ã¹ã¿ã€ã«ããç°¡ç¥åãããããŸãã¯å¶åŸ¡ãããã¹ã¿ã€ã«ã®ã»ããã§äžæžãããCSSã«ãŒã«ãå®çŸ©ããŸãã ããã¯å€ãã®å Žåããã¹ããã¬ãŒã ã¯ãŒã¯ã®èšå®å ã§è¡ãããŸãã
- ã¹ã¿ãã«ãŒã«ã®æ³šå
¥ïŒ ãã¹ããå®è¡ããåã«ãã¹ã¿ãã«ãŒã«ããã¹ãç°å¢ã«æ³šå
¥ããŸãã ããã¯ã
<style>èŠçŽ ãåçã«äœæããããã¥ã¡ã³ãã®<head>ã«è¿œå ããããšã§å®çŸã§ããŸãã - ãã¹ãã®å®è¡ïŒ ãã¹ããå®è¡ããã¹ã¿ãã«ãŒã«ã«ãã£ãŠèª²ãããå¶åŸ¡ãããæ¡ä»¶äžã§ã³ã³ããŒãã³ãã®ã¹ã¿ã€ãªã³ã°ããžãã¯ãæ£ããæ©èœããŠããããšã確èªããŸãã
- ã¹ã¿ãã«ãŒã«ã®åé€ïŒ ãã¹ããå®è¡ããåŸããã¹ãç°å¢ããã¹ã¿ãã«ãŒã«ãåé€ããŠãåŸç¶ã®ãã¹ãã劚ããªãããã«ããŸãã
å®è£ äŸïŒJestã䜿çšããJavaScriptïŒ
JavaScriptãšJestãã¹ããã¬ãŒã ã¯ãŒã¯ã䜿çšããå®çšçãªäŸã§ããã瀺ããŸãããã
Reactã³ã³ããŒãã³ãããããšããŸãã
// MyComponent.jsx
import React from 'react';
function MyComponent({ variant }) {
return (
<div className={`my-component {variant}`}>
Hello World!
</div>
);
}
export default MyComponent;
ãããŠãããã€ãã®å¯Ÿå¿ããCSSïŒ
/* MyComponent.css */
.my-component {
padding: 10px;
border: 1px solid black;
}
.my-component.primary {
background-color: blue;
color: white;
}
.my-component.secondary {
background-color: grey;
color: black;
}
次ã«ãJestã䜿çšããŠãã¹ããäœæããCSSã¹ã¿ãã«ãŒã«ãå©çšããŠmy-componentã¯ã©ã¹ãåé¢ããŸãããã
// MyComponent.test.jsx
import React from 'react';
import { render, screen } from '@testing-library/react';
import MyComponent from './MyComponent';
describe('MyComponent', () => {
let styleElement;
beforeEach(() => {
// Create a style element for the stub rule
styleElement = document.createElement('style');
styleElement.id = 'stub-rule'; // Add an ID for easy removal
// Define the stub rule
styleElement.innerHTML = `
.my-component {
padding: 0px !important; /* Override padding */
border: none !important; /* Override border */
}
`;
// Inject the stub rule into the document
document.head.appendChild(styleElement);
});
afterEach(() => {
// Remove the stub rule after each test
document.getElementById('stub-rule').remove();
});
it('renders without padding and border due to stub rule', () => {
render(<MyComponent />);
const componentElement = screen.getByText('Hello World!');
// Verify that the padding and border are overridden
expect(componentElement).toHaveStyle('padding: 0px');
expect(componentElement).toHaveStyle('border: none');
});
it('renders with primary variant and stub rule', () => {
render(<MyComponent variant="primary" />);
const componentElement = screen.getByText('Hello World!');
expect(componentElement).toHaveClass('primary');
expect(componentElement).toHaveStyle('padding: 0px');
expect(componentElement).toHaveStyle('border: none');
});
});
説æïŒ
beforeEachãããã¯ïŒ<style>èŠçŽ ãäœæããŸãã- styleèŠçŽ ã®
innerHTMLå ã§CSSã¹ã¿ãã«ãŒã«ãå®çŸ©ããŸãã ã¹ã¿ãã«ãŒã«ãæ¢åã®ã¹ã¿ã€ã«ãäžæžãããããã«ã!importantã䜿çšããŠããããšã«æ³šæããŠãã ããã <style>èŠçŽ ãããã¥ã¡ã³ãã®<head>ã«è¿œå ãã广çã«ã¹ã¿ãã«ãŒã«ãæ³šå ¥ããŸãã
afterEachãããã¯ïŒ ãã¹ãç°å¢ãã¯ãªãŒã³ã¢ããããä»ã®ãã¹ããšã®å¹²æžãé²ãããã«ãæ³šå ¥ããã<style>èŠçŽ ãåé€ããŸãã- ãã¹ãã±ãŒã¹ïŒ
MyComponentãã¬ã³ããªã³ã°ããŸããscreen.getByTextã䜿çšããŠã³ã³ããŒãã³ãèŠçŽ ãååŸããŸãã- Jestã®
toHaveStyleãããã£ãŒã䜿çšããŠãèŠçŽ ã®paddingãšborderããããã£ãã¹ã¿ãã«ãŒã«ã§å®çŸ©ãããå€ã«èšå®ãããŠããããšã確èªããŸãã
代æ¿å®è£
<style>èŠçŽ ãåçã«äœæããã ãã§ãªããCSS-in-JSã©ã€ãã©ãªã䜿çšããŠã¹ã¿ãã«ãŒã«ããã广çã«ç®¡çããããšãã§ããŸãã Styled ComponentsãEmotionãªã©ã®ã©ã€ãã©ãªã䜿çšãããšãJavaScriptã³ãŒãå
ã§çŽæ¥ã¹ã¿ã€ã«ãå®çŸ©ã§ãããããããã°ã©ã ã§ã¹ã¿ãã«ãŒã«ãç°¡åã«äœæããã³ç®¡çã§ããŸãã ããšãã°ããã¹ãå
ã§propsãŸãã¯ã³ã³ããã¹ãã䜿çšããŠã¹ã¿ã€ã«ãæ¡ä»¶ä»ãã§é©çšãã<style>ã¿ã°ã泚å
¥ããå Žåãšåæ§ã®å¹æãå®çŸã§ããŸãã
CSSã¹ã¿ãã«ãŒã«ã®äœ¿çšã«é¢ãããã¹ããã©ã¯ãã£ã¹
CSSã¹ã¿ãã«ãŒã«ã®å¹æãæå€§åããã«ã¯ã次ã®ãã¹ããã©ã¯ãã£ã¹ãæ€èšããŠãã ããã
- ç¹å®ã®ã»ã¬ã¯ã¿ãŒã䜿çšããïŒ é«åºŠã«å
·äœçãªCSSã»ã¬ã¯ã¿ãŒã䜿çšããŠã倿ŽããèŠçŽ ã®ã¿ãã¿ãŒã²ããã«ããŸãã ããã«ãããã¢ããªã±ãŒã·ã§ã³å
ã®ä»ã®èŠçŽ ã®ã¹ã¿ã€ã«ã誀ã£ãŠäžæžãããããªã¹ã¯ãæå°éã«æããããŸãã ããšãã°ã
.my-componentãã¿ãŒã²ããã«ãã代ããã«ãdiv.my-component#unique-idã®ããã«èŠçŽ ãããå ·äœçã«ã¿ãŒã²ããã«ããŸãã !importantãæ§ããã«äœ¿çšããïŒ!importantã¯ã¹ã¿ã€ã«ã®äžæžãã«åœ¹ç«ã¡ãŸãããé床ã«äœ¿çšãããšCSSã®åªå é äœã®åé¡ãçºçããå¯èœæ§ããããŸãã ã¹ã¿ãã«ãŒã«ãä»ã®ã¹ã¿ã€ã«ãããåªå ãããå¿ èŠãããå Žåã«ã®ã¿ãæ éã«äœ¿çšããŠãã ããã- ã¹ã¿ãã«ãŒã«ãã·ã³ãã«ã«ä¿ã€ïŒ ã³ã³ããŒãã³ããåé¢ããããã«å¿ èŠãªéèŠãªã¹ã¿ã€ã«ã®ã¿ãäžæžãããããšã«çŠç¹ãåœãŠãŸãã ã¹ã¿ãã«ãŒã«ã«äžèŠãªè€éããå ããªãããã«ããŠãã ããã
- ãã¹ãåŸã«ã¯ãªãŒã³ã¢ããããïŒ åžžã«ãã¹ããå®è¡ããåŸã«ã¹ã¿ãã«ãŒã«ãåé€ããŠãåŸç¶ã®ãã¹ããšã®å¹²æžãé²ããŸãã ããã¯éåžžããã¹ããã¬ãŒã ã¯ãŒã¯ã®
afterEachãŸãã¯afterAllããã¯ã§è¡ãããŸãã - ã¹ã¿ãã«ãŒã«å®çŸ©ãäžå åããïŒ ã¹ã¿ãã«ãŒã«å®çŸ©ãä¿åããããã®äžå çãªå Žæãäœæããããšãæ€èšããŠãã ããã ããã«ãããã³ãŒãã®åå©çšãä¿é²ããããã¹ãã®ä¿å®ã容æã«ãªããŸãã
- ã¹ã¿ãã«ãŒã«ãææžåããïŒ ä»ã®éçºè ããã¹ãããã»ã¹ã«ããã圹å²ãçè§£ã§ããããã«ãåã¹ã¿ãã«ãŒã«ã®ç®çãšåäœãæç¢ºã«ææžåããŸãã
- CI / CDãã€ãã©ã€ã³ãšã®çµ±åïŒ CSSãã¹ããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãšç¶ç¶çããªããªãŒãã€ãã©ã€ã³ã®äžéšãšããŠå«ããŸãã ããã«ãããéçºããã»ã¹ã®æ©ã段éã§ã¹ã¿ã€ãªã³ã°ååž°ãææã§ããŸãã
é«åºŠãªãã¯ããã¯
åºæ¬çãªå®è£ ãè¶ ããŠãã¹ã¿ãã«ãŒã«ã䜿çšããŠCSSãã¹ããããã«åŒ·åããããã®é«åºŠãªãã¯ããã¯ãæ€èšã§ããŸãã
- ã¡ãã£ã¢ã¯ãšãªã®ã¹ã¿ãã³ã°ïŒ ã¡ãã£ã¢ã¯ãšãªãäžæžãããŠãããŸããŸãªç»é¢ãµã€ãºãšããã€ã¹ã®åããã·ãã¥ã¬ãŒãããŸãã ããã«ãããããŸããŸãªæ¡ä»¶äžã§ã³ã³ããŒãã³ãã®å¿çæ§ããã¹ãã§ããŸãã ãã¹ãç°å¢å ã§ãã¥ãŒããŒããµã€ãºã倿Žãããã®ç¹å®ã®ãµã€ãºã§é©çšãããCSSã¹ã¿ã€ã«ã確èªã§ããŸãã
- ããŒãã®ã¹ã¿ãã³ã°ïŒ ç¹å®ã®ããŒãã®ã¹ã¿ã€ã«ã匷å¶ããŠãã³ã³ããŒãã³ããç°ãªãããŒãã®äžã§æ£ããã¬ã³ããªã³ã°ãããããšã確èªããŸãã ããã¯ãããŒãåºæã®CSS倿°ãŸãã¯ã¯ã©ã¹åãäžæžãããããšã§å®çŸã§ããŸãã ããã¯ãããŸããŸãªããŒãïŒããšãã°ãé«ã³ã³ãã©ã¹ãã¢ãŒãïŒå šäœã§ã®ã¢ã¯ã»ã·ããªãã£ã確ä¿ããããã«ç¹ã«éèŠã§ãã
- ã¢ãã¡ãŒã·ã§ã³ãšãã©ã³ãžã·ã§ã³ã®ãã¹ãïŒ ããè€éã§ãããã¹ã¿ãã«ãŒã«ã䜿çšããŠãã¢ãã¡ãŒã·ã§ã³ãšãã©ã³ãžã·ã§ã³ã®éå§ç¶æ ãšçµäºç¶æ ãå¶åŸ¡ã§ããŸãã ããã¯ãã¢ãã¡ãŒã·ã§ã³ãã¹ã ãŒãºã§èŠèŠçã«é åçã§ããããšã確èªããã®ã«åœ¹ç«ã¡ãŸãã ãã¹ãå ã§ã¢ãã¡ãŒã·ã§ã³ã¿ã€ã ã©ã€ã³ãå¶åŸ¡ããããã®ãŠãŒãã£ãªãã£ãæäŸããã©ã€ãã©ãªãæ€èšããŠãã ããã
- ããžã¥ã¢ã«ãªã°ã¬ãã·ã§ã³ãã¹ãã®çµ±åïŒ CSSã¹ã¿ãã«ãŒã«ãããžã¥ã¢ã«ãªã°ã¬ãã·ã§ã³ãã¹ãããŒã«ãšçµã¿åãããŸãã ããã«ããã倿Žã®ååŸã®ã³ã³ããŒãã³ãã®ã¹ã¯ãªãŒã³ã·ã§ãããèªåçã«æ¯èŒããã³ãŒãã«ãã£ãŠå°å ¥ãããèŠèŠçãªãªã°ã¬ãã·ã§ã³ãç¹å®ã§ããŸãã ã¹ã¿ãã«ãŒã«ã«ãããã¹ã¯ãªãŒã³ã·ã§ãããæ®åœ±ãããåã«ã³ã³ããŒãã³ããæ¢ç¥ã®ç¶æ ã«ãªããããããžã¥ã¢ã«ãªã°ã¬ãã·ã§ã³ãã¹ãã®ç²ŸåºŠãåäžããŸãã
åœéåïŒi18nïŒã«é¢ããèæ ®äºé
åœéåãããã¢ããªã±ãŒã·ã§ã³ã§CSSããã¹ãããå Žåã¯ã以äžãèæ ®ããŠãã ããã
- ããã¹ãæ¹åïŒRTL / LTRïŒïŒ ã¹ã¿ãã«ãŒã«ã䜿çšããŠãå³ããå·ŠïŒRTLïŒã®ããã¹ãæ¹åãã·ãã¥ã¬ãŒãããã¢ã©ãã¢èªãããã©ã€èªãªã©ã®èšèªã§ã³ã³ããŒãã³ããæ£ããã¬ã³ããªã³ã°ãããããšã確èªããŸãã ããã¯ãã³ã³ããŒãã³ããŸãã¯ã¢ããªã±ãŒã·ã§ã³ã®ã«ãŒãèŠçŽ ã§
directionããããã£ãrtlã«èšå®ããããšã§å®çŸã§ããŸãã - ãã©ã³ãã®èªã¿èŸŒã¿ïŒ ã¢ããªã±ãŒã·ã§ã³ãç°ãªãèšèªã«ã«ã¹ã¿ã ãã©ã³ãã䜿çšããŠããå Žåã¯ããã¹ãç°å¢ã§ãã©ã³ããæ£ããèªã¿èŸŒãŸããŠããããšã確èªããŠãã ããã é©åãªãã©ã³ããèªã¿èŸŒãã«ã¯ãã¹ã¿ãã«ãŒã«å ã§font-face宣èšã䜿çšããå¿ èŠãããå ŽåããããŸãã
- ããã¹ããªãŒããŒãããŒïŒ ããŸããŸãªèšèªã§ã³ã³ããŒãã³ããããã¹ããªãŒããŒãããŒãã©ã®ããã«åŠçãããããã¹ãããŸãã ããé·ãåèªãæã€èšèªã¯ãããã¹ããã³ã³ãããããªãŒããŒãããŒããå¯èœæ§ããããŸãã ã¹ã¿ãã«ãŒã«ã䜿çšããŠé·ãããã¹ãæååãã·ãã¥ã¬ãŒãããã³ã³ããŒãã³ãããªãŒããŒãããŒãé©åã«åŠçããããšïŒããšãã°ãçç¥èšå·ãŸãã¯ã¹ã¯ããŒã«ããŒã䜿çšïŒã確èªããŸãã
- ãã±ãŒã«åºæã®ã¹ã¿ã€ãªã³ã°ïŒ èšèªã«ãã£ãŠã¯ãç°ãªããã©ã³ããµã€ãºãè¡ééãªã©ãç¹å®ã®ã¹ã¿ã€ãªã³ã°èª¿æŽãå¿ èŠã«ãªãå ŽåããããŸãã ã¹ã¿ãã«ãŒã«ã䜿çšããŠããããã®ãã±ãŒã«åºæã®ã¹ã¿ã€ã«ãé©çšããã³ã³ããŒãã³ããç°ãªããã±ãŒã«ã§æ£ããã¬ã³ããªã³ã°ãããããšã確èªããŸãã
ã¹ã¿ãã«ãŒã«ã䜿çšããã¢ã¯ã»ã·ããªãã£ïŒa11yïŒãã¹ã
CSSã¹ã¿ãã«ãŒã«ã¯ãã¢ã¯ã»ã·ããªãã£ãã¹ãã§ã圹ç«ã¡ãŸãã
- ã³ã³ãã©ã¹ãæ¯ïŒ ã¹ã¿ãã«ãŒã«ã䜿çšããŠç¹å®ã®è²ã®çµã¿åãããé©çšããã³ã³ãã©ã¹ãæ¯ããã¹ãããèŠèŠé害ã®ãããŠãŒã¶ãŒãããã¹ããèªã¿åããããã«ããŸãã
axe-coreã®ãããªã©ã€ãã©ãªã䜿çšããŠãã³ã³ãã©ã¹ãæ¯éåã«ã€ããŠã³ã³ããŒãã³ããèªåçã«ç£æ»ã§ããŸãã - ãã©ãŒã«ã¹ã€ã³ãžã±ãŒã¿ãŒïŒ ã¹ã¿ãã«ãŒã«ã䜿çšããŠããã©ãŒã«ã¹ã€ã³ãžã±ãŒã¿ãŒãæç¢ºã«è¡šç€ºãããã¢ã¯ã»ã·ããªãã£ã¬ã€ãã©ã€ã³ãæºãããŠããããšã確èªã§ããŸãã èŠçŽ ããã©ãŒã«ã¹ãããŠãããšãã®
outlineã¹ã¿ã€ã«ããã¹ãããŠããŠãŒã¶ãŒãããŒããŒãã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãç°¡åã«ããã²ãŒãã§ããããã«ããããšãã§ããŸãã - ã»ãã³ãã£ãã¯HTMLïŒ CSSã«çŽæ¥é¢ä¿ã¯ãããŸããããã¹ã¿ãã«ãŒã«ã䜿çšãããšãã³ã³ããŒãã³ããã»ãã³ãã£ãã¯HTMLèŠçŽ ãæ£ãã䜿çšããŠããããšã確èªã§ããŸãã ã¬ã³ããªã³ã°ãããHTMLæ§é ãæ€æ»ããããšã«ãããèŠçŽ ãæå³ããç®çã§äœ¿çšãããæ¯æŽæè¡ãããããæ£ããè§£éã§ããããšã確èªã§ããŸãã
çµè«
CSSã¹ã¿ãã«ãŒã«ã¯ãWebã¢ããªã±ãŒã·ã§ã³ã®ä¿¡é Œæ§ãšèŠèŠçãªäžè²«æ§ãåäžãããããã®åŒ·åã§çšéã®åºããã¯ããã¯ã§ãã ã³ã³ããŒãã³ããåé¢ããã¹ã¿ã€ãªã³ã°ããžãã¯ãæ€èšŒããäºæž¬å¯èœãªãã¹ãç°å¢ãäœæããæ¹æ³ãæäŸããããšã«ãããããå ç¢ã§ä¿å®å¯èœãªCSSã³ãŒããäœæã§ããŸãã ãã®ãã¯ããã¯ãæ¡çšããŠãCSSãã¹ãæŠç¥ãé«ããåªãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããŸãããã