一些css书写的小技巧
一、css顺序
首先声明,浏览器读取css的方式是从上到下的。我们一般书写css只要元素具备这些属性就会达到我们预期的效果,但是这会给以后的维护和浏览器的渲染效率带来一定的影响,那么该怎么书写css的顺序呢?有没有一定的规范呢?
首先我们知道css的属性按特性分为几类;
1.规定元素特性,如display、position、float,这些属性会决定他的排版方式
2.规定元素的空间占据,如line-height、margin、padding、width、height等,这些属性会决定元素的大小和位置
3.规定元素的自身效果,如font-size、color、background等,这些属性会决定元素的效果
其实当我们把css的属性分类结束后,我们会得到一个很明显的答案,我们可以想象一下自己用css按照自己的书写顺序画出来该元素,举例说明
p.detail {
font-size: 10px;
line-height: 12px;
width: 30px;
height: 30px;
display: inline;
}
描述:这是一个元素 字体大小10px 行高12px 宽度30px 高度30px 陈列方式为内联样式
当我们开始读取属性的时候,我们会很难对元素进行定位,因为我们不知道元素的特性,陈列方式。读到最后一行的时候才发现,原来这是一个内联元素,宽度和高度的定义就会失效,所以这种css书写顺序是不被推荐的
p.detail {
display: inline-block;
margin-top: 20px;
width: 100%;
height: 20px;
color: #fff;
font-size: 10px;
}
描述: 这是一个元素,陈列方式为内联-块方式,距上有20px 宽度与父元素等宽 高度为20px 颜色为白色 字体大小为10px
这样的书写方式就能按照一个我们很容易理解的方式进行渲染
总结: 我们书写css的时候推荐的规范是,先书写影响元素陈列特性的属性,再书写影响元素位置的属性,最后书写元素的内部属性
二、点击或hover等触发高亮情况的css书写
当鼠标hover的时候,我们往往给需要改变的元素添加一个active类名,然后在active里面书写我们需要改变的属性
如:
.content {
background: black;
}
.active {
background: white;
}
当我们点击某元素的时候,需要.content的背景色从黑色变成白色,那么给.content添加active类名就会达到我们的预期效果,然而我们有的时候点击的时候不止要改变一个元素的属性,我们有可能会有这种情况
我们需要在点击一个类名为.click的元素的时候,元素icon字体 和 span元素一个字体变大 一个变为红色怎么办,我们可以这样
<div class="parent">
<div class="icon-font"></div>
<span class="text"></span>
</div>
<div class="click"></div>
<style>
.icon-active{
font-size: 40px;
}
.text-active{
color: red;
}
</style>
<script src="jquery.js"></script>
<script>
$(‘.click’).click(function() {
$('.icon-font').addClass('icon-active');
$('.text').addClass('text-active')
})
</script>
这样可以达到我们的预期效果,但是这是两个元素的关联反应,假如有三个元素或更多,我们会需要更多的代码,
其实细心的朋友可能发现了我这里有一个.parent 标签,我们可以通过给.parent标签添加active类名代码如下:
<div class="parent">
<div class="icon-font"></div>
<span class="text"></span>
</div>
<div class="click"></div>
<style>
.active .icon-font{
font-size: 40px;
}
.active .text{
color: red;
}
</style>
<script src="jquery.js"></script>
<script>
$(‘.click’).click(function() {
$('.parent').addClass('active');
})
</script>
这样的话 我们只需要将会改变css元素的最相近的最外层添加active类名,然后设置该类名下后代元素的样式,这样我们只需要添加一个active类名就达到了我们预期的效果
一些css书写的小技巧的更多相关文章
- css的一些小技巧。修改input样式
在第一次正式写项目的时候,遇到了几个布局的小技巧.记录一下. 我们常常会遇到图片和文字对齐的一种样式.比如 这样的样式,我们写的时候有时候会出现不对齐的情况.我们有俩种方法 一种就是flex的布局,还 ...
- 关于html/css的一些小技巧之hack掉"margin-top"层叠问题
身为小前端菜鸟一枚,忽然听到这样一则传言~~ 心情久久不能平复,想到前几日,开通了博客君,特来此寻找存在feeling~ 旨在造福普罗大众(更多前端小菜鸟) 话不多说, 我们步入正题,今天来给大家分享 ...
- 从零开始学习html(十五)css样式设置小技巧——下
六.垂直居中-父元素高度确定的单行文本 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8&quo ...
- css浮动布局小技巧
父元素如何围住浮动的子元素的三种办法: 一.为父元素应用overflow:hidden. overflow真正用途是防止包含元素被大的内容撑开,设定了宽度之后,包含元素将超过容器的内容减掉:而它还有另 ...
- CSS的一些小技巧
1.黑白图像img.desaturate { filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: graysc ...
- css的一些小技巧!页面视觉差!
相当长的一段时间,现在网站与所谓的“视差”效果一直很受欢迎. 万一你没有听说过这种效果,不同的图像,在不同的方向移动或层主要包括.这导致了一个很好的光学效应,使参观者的注意. 在网页设计中,为了实现这 ...
- HTML+CSS学习笔记 (15) - css样式设置小技巧
水平居中设置-行内元素 我们在实际工作中常会遇到需要设置水平居中场景,今天我们就来看看怎么设置水平居中的. 如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:c ...
- HTML+CSS笔记 CSS中级 一些小技巧
水平居中 行内元素的水平居中 </a></li> <li><a href="#">2</a></li> &l ...
- 从零开始学习html(十五)css样式设置小技巧——上
一.水平居中设置-行内元素 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> ...
随机推荐
- MySQL ProxySQL读写分离使用初探
目的 在美团点评DBProxy读写分离使用说明文章中已经说明了使用目的,本文介绍ProxySQL的使用方法以及和DBProxy的性能差异.具体的介绍可以看官网的相关说明,并且这个中间件也是percon ...
- hdu3336 Count the string kmp+dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3336 很容易想到用kmp 这里是next数组的应用 定义dp[i]表示以s[i]结尾的前缀的总数 那么 ...
- XSS攻击及预防
跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者往Web页面里插 ...
- JSP页面的静态包含和动态包含
JSP中有两种包含:静态包含:<%@include file="被包含页面"%>和动态包含:<jsp:include page="被包含页面" ...
- freemarker---详细使用教程
FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1,文本:直接输出的部分2,注释:<#-- ... -->格式部分,不会输出 ...
- 使用faker 生成中文测试数据
https://github.com/fzaninotto/Faker/blob/master/src/Faker/Provider/zh_CN/Address.php 常用的类型都在里面. 下面是一 ...
- 读《Java并发编程的艺术》(二)
上篇博客开始,我们接触了一些有关Java多线程的基本概念.这篇博客开始,我们就正式的进入了Java多线程的实战演练了.实战演练不仅仅是贴代码,也会涉及到相关概念和术语的讲解. 线程的状态 程的状态分为 ...
- 如何选择版本控制系统 ---为什么选择Git版本控制系统
版本控制系统 "代码"作为软件研发的核心产物,在整个开发周期都在递增,不断合入新需求以及解决bug的新patch,这就需要有一款系统,能够存储.追踪文件的修改历史,记录多个版本的开 ...
- 根据wsdl文件用soapUi快速创建webService服务(有图有真相)
最近公司业务上使用webservice 频繁.由于之前都是自己搭建webservice 自己定义提供给别人服务,现在则相反需求都是根据人家提供的wsdl 文件来生成 我们平台需要提供的接口.刚开始不知 ...
- 【Netty】Netty之Bootstrapping
一.前言 前面已经学习了Netty的EventLoop以及线程模型,接着学习Netty的Bootstrapping. 二.Bootstrapping 在学习了Netty中的很多组件后,如何将这些组件有 ...