Home > Article > Web Front-end > Tips to make CSS weights more friendly
In this article, I will show you some CSS tips through some examples, so that you can know how to use CSS cascade to become more friendly and reduce unnecessary requirements. This also reduces the trouble encountered in weighting.
Tip 1: Styles always appear as a combination of specific attributes
A good example is the combination of color and baking-color. Unless you are only making small adjustments, you need to adjust them all together. When adding a background color to an element, it may not contain any text, but may have some child elements. Therefore, by setting the foreground-color and background-color together, we can always be sure that these elements will not encounter any legibility and contrast problems. Next time we change the background color, we don’t have to look around for the text color to change because they all appear together as a group.
Tip 2: Use dynamic values, such as currentColor and em, etc.
Sometimes the text color is also used on other attributes. For example, border, box-shadow or fill in SVG icons. An alternative to defining the same color is to use currentColor directly. By default, color is inheritable, and you only need to modify it in one place to change the color of other properties.
Similarly, using em units for the font-size attribute allows you to change the box model size of the element by just modifying the :root's font-size.
Tip 3: Use the inherit attribute value to inherit the style of its parent element to override the UA's own style.
For form controls such as buttons and inputs, different browsers will have their own styles (UA styles). We can use inherit to inherit the style of its parent element, thereby overriding the browser's UA style.
button, input, select, textarea { color: inherit; font-family: inherit; font-style: inherit; font-weight: inherit; }
The above example code is taken from sanitize.css, normalize.css is also used in this way. If you don't use it this way, it means you have...
You can also try input[type="range"], input[type="radio"] and input[type="checkbox"], etc. Directly use the currentColor attribute introduced earlier on the element to automatically match the color. Maybe you don't need to change anything, you can change a bright color to a dark color.
Tip 4: Whenever you write CSS, you want to get as close to the top of the tree as possible. In other words, go back to :root.
For example, our website has a sidebar and we want to add a short personal introduction to this sidebar. The structure of the HTML may look like this:
<body> <main class=“Posts”> <aside class=“SideBar”> <nav class=“Nav”> <p class=“Bio”>
The CSS is written like this:
.Bio { font-size: .8em; line-height: 1.5; color: #888; }
Written like this, it can work normally and there is no style problem. However, the sidebar also has a navigation nav, and it's likely that they have some styles that are the same. In our example font-size and color are the same. Let's extract these properties from nav and .Bio and add them to its parent element .SideBar:
.SideBar { font-size: .8em; color: #888; }
It turns out that line-height:1.5; is already set in .Posts. It seems that the entire page uses the same line height, then we can move the line-height in .Bio and .Posts to the root element:
:root { line-height: 1.5; }
This seems to be a CSS common sense, but he does not would be too focused on sibling elements defining the same thing. This also allows you to find that some code is duplicated. In fact, this is not terrible, because we only need to spend some time to refactor the code, but this maintains the health of CSS code processing.
Write styles on the branches, not on the leaves
The above is the detailed content of Tips to make CSS weights more friendly. For more information, please follow other related articles on the PHP Chinese website!