自从入了前端的坑。坑是愈来愈大,快把本身埋了。现在又開始搞样式了。javascript
CSS样式的写法有这么3种,如下咱们一一介绍。css
链入外部样式表是这种,通常放在<head></head>
里:前端
<link href="mystyle.css" rel="stylesheet" type="text/css" media="all">…… </head>
当中mystyle.css
是本身写的CSS文件。内部大概是长这种:java
.text-center{ vertical-align: middle; text-align:center; display: table-cell; }
.vw { width: 50%; height: 50%; }
.contentstyle{ transform: scale(0.95); border-left-color:black;border-left-width:1px;border-left-style:solid; border-right-color:black;border-right-width:1px;border-right-style:solid; margin-top:-13px; }
引入的时候,经过class来引入。像如下这样:web
<div class="mybackgrounds" id="maindiv">
内部样式表大概长这样:bootstrap
<head> …… <style type="text/css"> hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} </style> …… </head>
内嵌样式通常是这样子的:浏览器
<p style="color: sienna;margin-left: 20px;"> 这是一个段落 </p>
通常不推荐这第三种这种,通常使用第一种写法。easy管理,也便于重用。markdown
只是这三种样式也是有优先级的:内联式 > 嵌入式 > 外部式,但是嵌入式>外部式有一个前提:嵌入式css样式的位置必定在外部式的后面。app
事实上总结来讲。就是–就近原则(离被设置元素越近优先级别越高)。wordpress
通常来说引用的外部js放在如下。外部css放在上面这是习惯,其缘由例如如下:
1. JS 有可能会改动 DOM.
典型的,可能会有 document.write. 这意味着,在当前 JS 载入和运行完毕前,兴许所有资源的下载有多是不是必需的。这是 JS 堵塞兴许资源下载的根本缘由。
2. JS 的运行有可能依赖最新样式。
比方,可能会有 var width = $(‘#id’).width(). 这意味着,JS 代码在运行前,浏览器必须保证在此 JS 以前的所有 css(无论外链仍是内嵌)都已下载和解析完毕。这是 CSS 堵塞兴许 JS 运行的根本缘由。
3. CSS要先渲染。
CSS放在前端是页面渲染时首先是依据DOM结构生成一个DOM树而后加上CSS样式生成一个渲染树,假设CSS放在后面可能页面会出现闪跳的感受,或者是白屏或者布局混乱样式很是丑直到CSS载入完毕。
但是,现代浏览器之间的竞争也十分激烈。他们一般有本身的优化方式。可以进行prefetch优化,这种话。性能是如此重要,现代浏览器在竞争中。在 UI update 线程以外。还会开启还有一个线程。对兴许 JS 和 CSS 提早下载(注意,仅提早下载,并不运行)。有了 prefetch 优化。这意味着,在不存在不论什么堵塞的状况下,理论上 JS 和 CSS 的下载时机都很是优先。和位置无关。
使用iframe的时候。最大的优势就是内网页不用本身写了,可以引用。但是通常会有一个问题。因为iframe有可能仅仅是咱们本身网页的一部分,那么引用网页有多是一个完整的网页,那么这样子的话,会形成显示上的问题。那这时候,事实上使用缩放来作,可以作一个折中的方案,毕竟原网页不是你想改就能改的。
缩放也是有2种的。一种是ZOOM,还有一种是CSS3的transform:scale。那么他们有什么不一样呢?
从IE9+到其它现代浏览器都支持。
总而言之仍是有一些差别的:
zoom更全面,但是不能是负数。仅仅能等比例控制;而scale尽管仅仅能是数值。但是能负数,可以仅仅控制1个维度。
综合上述缘由。iframe应当使用的是transform:scale放缩更好一些。
背景渐变这个应该简单的不能再简单了,简单来说就是长这种:
.mybackgrounds{ background:-webkit-linear-gradient(top,#222222,#FFFFFF); }
这里详细的,来说。background是设置背景,而-webkit-linear-gradient则表示线性渐变,(top,#222222,#FFFFFF)分别表示的是開始位置(从上到下),開始颜色(灰黑),结束颜色(白色)。更详细的可以看一下如下这里:背景渐变详细解释
输入框组就像以前提到的那样,boostrap里提供了一个简单的样式,但是还算美观。详细的写法例如如下:
<div class="form-group">
<div class="input-group ">
<span id="hotwordspan" class="input-group-addon">
热点词汇
</span>
<asp:TextBox ID="TextBox2" class="form-control"runat="server">
</asp:TextBox>
</div>
</div>
尤其值得注意的是,class="form-control"
输入框的这个class要加入。否则的话。输入框会比前一个span小上一部分,所以必须加上这个。
相同的,<asp:TextBox ID="TextBox2" class="form-control"runat="server"></asp:TextBox>
这个可以换成其它的组件。包含像下拉框、选择框、输入框等等都可以。
时间框也是非常常见的组件。咱们来看一下长什么样:
<div class="form-group">
<div class="input-group date form_date" data-date="" data-date-format="dd MM yyyy" data-link-field="dtp_input2" data-link-format="yyyy-mm-dd">
<span class="input-group-addon">选择日期</span>
<!--这是终于获取日期的框-->
<asp:TextBox ID="TextBox1" class="form-control" runat="server"></asp:TextBox>
<!--这是一个清除图标-->
<span class="input-group-addon"><span class="glyphicon glyphicon-remove"></span></span>
<!--这是一个日期图标-->
<span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>
</div>
<!--这是一个展现日历框-->
<input type="hidden" id="dtp_input1" value="" />
</div>
这都写完了就完毕了么?不。这个组件被称为是Js组件,所以还需要写如下js代码:
$('.form_date').datetimepicker({
format: 'yyyy-mm-dd',
weekStart: 1,
autoclose: true,
startView: 2,
minView: 2,
forceParse: false,
//选择语言
language: 'zh-CN',
//今天button可用否
todayBtn: true,
//今天高亮否
todayHighlight: true,
//初始化日期
initialDate: '2016-07-01',
});
固然。把这些都写完了之后,仍是不成功的话。你需要考虑如下有没有引入这个:
<link href="css/bootstrap.min.css" rel="stylesheet" />
<link href="css/bootstrap-datetimepicker.min.css" rel="stylesheet" media="screen" />
上一个是Bootstrap样式,下一个是datetimepicker组件。