<head>
<style>
h1:hover {
color: red;
}
</style>
</head>
<body>
<h1 style="font-size: 36px; color: yellow;">學生會ㄉ活動相簿</h1>
<table>
<td style="border: 1px solid black;">
我愛學生會!!
</td>
<td style="background-color: pink; border: 1px solid black;">
分享活動照片給大家看~~ ^_^
</td>
<td style="border: 1px solid black; background-color: grey;">
<img src="https://i.imgur.com/knPxeLP.jpg" alt="2018團體照">
</td>
</table>
</body>
<head>
<style>
#title { ... }
#title:hover { ... }
table tr td { ... }
.............
</style>
</head>
<body>
<h1 id="title">學生會ㄉ活動相簿</h1>
<table>
<tr>
<td class="table-title">
我愛學生會!!
</td>
<td class="special-td table-description">
分享活動照片給大家看~~ ^_^
</td>
<td class="special-td">
<img src="https://i.imgur.com/knPxeLP.jpg" alt="2018團體照">
</td>
</tr>
</table>
</body>
太醜啦!!!
<head>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<h1 id="title">學生會ㄉ活動相簿</h1>
<table>
<tr>
<td class="table-title">
我愛學生會!!
</td>
<td class="special-td table-description">
分享活動照片給大家看~~ ^_^
</td>
<td class="special-td">
<img src="https://i.imgur.com/knPxeLP.jpg" alt="2018團體照">
</td>
</tr>
</table>
</body>
打開 styles.css 來看看
我們必須順他的意
/* Sass */
#china
background-color: red
.great-wall
border-style: solid
/* Compiled */
#china {
background-color: red;
}
#china .great-wall {
border-style: solid;
}
<ul class="product menu">
<li class="item active"><a href="#"></a></li>
<li class="item"><a href="#"></a></li>
</ul>
搞不清楚某個 classname 是樣式還是其他邏輯要用的
各種匪夷所思的名字 .main-content
.main_content .content-body
.main-container .rootContainer
.activebox .inactive_box
// Before
<ul class="menu">
<li class="item active"><a href="#"></a></li>
<li class="item"><a href="#"></a></li>
</ul>
// After
<div class="product">
<div class="menu">
<li class="menu__item menu__item--active"><a href="#"></a></li>
<li class="menu__item"><a href="#"></a></li>
</div>
</div>
<form class="site-search site-search--full">
<input type="text" class="site-search__field">
<input type="Submit" class="site-search__button" value="Search">
</form>
// Before
<div class="media">
<img src="logo.png" alt="logo" class="img-rev">
<div class="body">
<h3 class="welcome">Welcome!!!</h3>
<p class="helper">Hint</p>
</div>
</div>
// After
<div class="media">
<img src="logo.png" alt="logo" class="media__img--rev">
<div class="media__body">
<h3 class="welcome">Welcome!!!</h3>
<p class="helper">Hint</p>
</div>
</div>
大家都很開心了呢
......等
import React from 'react';
import styles from './table.css';
export default class Table extends React.Component {
render () {
return <div className={styles.table}>
<div className={styles.row}>
<div className={styles.cell}>A0</div>
<div className={styles.cell}>B0</div>
</div>
</div>;
}
}
/* 產出如下 */
<div class="table__table___32osj">
<div class="table__row___2w27N">
<div class="table__cell___1oVw5">A0</div>
<div class="table__cell___1oVw5">B0</div>
</div>
</div>
再也、絕對不會互相污染,真的是好棒棒欸
import React from 'react'
import styled from 'styled-components'
const Title = styled.h1`
/* This is a comment */
text-align: center;
color: red;
&:hover {
background-color: white;
}
`
render() {
return <Title>Hello World</Title>
}
import styled from 'styled-components'
import { Menu } from 'styled-icons/feather'
import { Check } from 'styled-icons/fa-solid'
const RedCheck = styled(Check)`
color: red;
`
<div>
<Menu />
<RedCheck size={12} />
</div>
優點:
1. 大家習慣的模式
2. 完美搭配已經相當成熟的 Sass/SCSS、Less、Stylus 等預處理器
門派:
CSS Modules
及過去熟悉的各種開發方式
優點:
1. 只生成頁面會 render 到的樣式,易於實現 lazy-import
2. 可做 CSS 單元測試
3. 完全把樣式封裝在 Component 內
門派:
Radium, aphrodite,
styletron, polished,
styled-components