对于一个小白来说,遇到的前端问题(2)

1. 写在前面

自从入了前端的坑。坑是越来越大,快把自己埋了。如今又開始搞样式了。

2. CSS样式的写法

CSS样式的写法有这么3种,以下我们一一介绍。

1. 外部样式表

链入外部样式表是这种,一般放在<head></head>里:

<link href="mystyle.css" rel="stylesheet" type="text/css" media="all">…… </head>

当中mystyle.css是自己写的CSS文件。内部大概是长这种:

.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来引入。像以下这样:

<div class="mybackgrounds"  id="maindiv">

2. 内部样式表

内部样式表大概长这样:

<head> …… <style type="text/css"> hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} </style> …… </head>

3. 内嵌样式

内嵌样式一般是这样子的:

<p style="color: sienna;margin-left: 20px;"> 这是一个段落 </p>

一般不推荐这第三种这种,一般使用第一种写法。easy管理,也便于重用。

只是这三种样式也是有优先级的:内联式 > 嵌入式 > 外部式,可是嵌入式>外部式有一个前提:嵌入式css样式的位置一定在外部式的后面。

事实上总结来说。就是–就近原则(离被设置元素越近优先级别越高)。

3. CSS样式表和Js文件位置

一般来讲引用的外部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 的下载时机都非常优先。和位置无关。

4. iframe与变换缩放

使用iframe的时候。最大的优点就是内网页不用自己写了,能够引用。可是一般会有一个问题。由于iframe有可能仅仅是我们自己网页的一部分,那么引用网页有可能是一个完整的网页,那么这样子的话,会造成显示上的问题。那这时候,事实上使用缩放来做,能够做一个折中的方案,毕竟原网页不是你想改就能改的。

缩放也是有2种的。一种是ZOOM,还有一种是CSS3的transform:scale。那么他们有什么不同呢?

  1. 首先。他们的来源不同:

    还在几年前,zoom还仅仅是IE浏览器自己私有的玩具,可是,如今,除了FireFox浏览器,其它。尤其Chrome和移动端浏览器已经非常好支持zoom属性了。注意。尽管Chrome/Safari浏览器支持了zoom属性。可是,事实上zoom并非标准属性。

    而Transform则是CSS3标准,明明白确写入规范的。

    从IE9+到其它现代浏览器都支持。

  2. 其次,是他们写法不同:

    来看一下他们假设都是缩放一半,应该怎么写:

    .zoom-half { zoom: 0.5; }

    .scale-half { transform: scale(0.5); }

  3. 最后是他们的效果不同:

    zoom缩放是相对于左上角的,而scale默认是相对于元素的中心点缩放的。scale能够通过设置transform-origin来改变缩放的相对位置。当设置transform-origin: 0 0时。scale缩放能够达到和zoom缩放类似的结果。

总而言之还是有一些差异的:

  1. 浏览器兼容性。IE全族/Chrome/Safari和IE9+现代浏览器的区别。
  2. 控制缩放的值不一样。

    zoom更全面,可是不能是负数。仅仅能等比例控制;而scale尽管仅仅能是数值。可是能负数,能够仅仅控制1个维度。

  3. zoom的缩放是相对于左上角的;而scale默认是居中缩放;
  4. zoom的缩放改变了元素占领的空间大小;而scale的缩放占领的原始尺寸不变,页面布局不会发生变化;
  5. zoom和scale对元素的渲染计算方法可能有差异。
  6. 对文字的缩放规则不一致。zoom缩放依旧受限于最小12像素中文限制大小;而scale就是纯粹的对图形进行比例控制,文字50%原来尺寸。
  7. 渲染的性能差异明显。

综合上述原因。iframe应当使用的是transform:scale放缩更好一些。

5.背景渐变

背景渐变这个应该简单的不能再简单了,简单来讲就是长这种:

.mybackgrounds{
    background:-webkit-linear-gradient(top,#222222,#FFFFFF);
}

这里详细的,来讲。background是设置背景,而-webkit-linear-gradient则表示线性渐变,(top,#222222,#FFFFFF)分别表示的是開始位置(从上到下),開始颜色(灰黑),结束颜色(白色)。更详细的能够看一下以下这里:背景渐变详细解释

6. 输入框组

输入框组就像之前提到的那样,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>

这个能够换成其它的组件。包含像下拉框、选择框、输入框等等都能够。

7. 时间选择

时间框也是非经常见的组件。我们来看一下长什么样:

<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组件。

时间: 2024-08-08 19:21:37

对于一个小白来说,遇到的前端问题(2)的相关文章

一个小白来遇到的前端问题汇总

1. 写在前面 自从入了前端的坑,坑是越来越大,快把自己埋了.现在又开始搞样式了. 2. CSS样式的写法 CSS样式的写法有这么3种,下面我们一一介绍. 1. 外部样式表 链入外部样式表是这样的,一般放在<head></head>里: <link href="mystyle.css" rel="stylesheet" type="text/css" media="all">-- </

一个小白的程序之路(自身经历)

不知不觉已经来了北京半年了,认识程序也有半年多的时间了,一直都感觉这是一个大坑,永远填不满的坑,或许这就是学无止境吧,以前自身是一个比较贪玩的人,不过对于电脑的热爱是一如既往,从小时候就喜欢电子产品,直到现在终于可以肆无忌惮的每天操控着电脑做自己喜欢做的事情了.个人是总C开始学的,因为以前没有好好上学,并且大学选的也不知计算机专业,认识的也是比较晚的,知道有一天我突发奇想,告诉家人我要去学编程,我要写自己的app,然后就来到了北京,参加了某培训机构的培训,不敢说懂得很多,只能说多少了解一小块,下

一个小白的html学习

这将是我的第一篇博客,只是想记录一下这段时间自己学习html的过程和感受! 和很多人可能一样,我接触html的时候,也是一点都不熟悉,虽然大学的时候接触了PHP设计,但毕竟是作为一门选修课,教的和学的都不是很多,所以说,自己在这门领域,其实也就是一个小白.因为很明白自己是一个小白的身份进入到这个领域的,所以一开始就告诉自己要付出更多的努力去学好! html5到底是一个什么东西呢?很多人接触的时候都会问这样一句话,其实html我的理解就是一门简单的网页语言,至少说是我这段时间学的是比较基础的东西,

我是一个小白

我是一只小白,心中有所怀揣,虽然现在步履蹒跚,但是丝毫不影响我对JS的满心期待.我是一只小白,复杂难题自然无奈,简单疑问也会塞满我的脑袋,但我依旧努力追寻答案.我是一只小白,心知止步就会淘汰,故或无敌勤奋或无敌慵懒,我会迎来我的精彩!我是一只小白,很多问题偶都不明白,谁来告诉我答案,是我太菜,还是JS的高峰实在难攀,谁来给我指南,明明href可以很简单,为何啰哩吧嗦像个老太太,我是一个小白,想不明白想不明白!

Androidstudio对小白来说干啥啥不行,报错第一名:报错1:Emulator: D:\Android\SDK\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe: icmpv6 ICMP6_ECHO_REQUEST

对于咋们小白来说,真的太难了(土拨鼠叫) 也不知怎么回事,总感觉摆脱不了C盘,我刚把.android文件夹移到D盘后,按照某某博客上的说,我操作应该是正确的 但是他总是报错,唉,没办法.只能再找其他博客,原来把移出去的.android中的avd里面的Nexus_5X_API_29_x86.ini文件复制,然后放回到原来C盘中的位置就好啦 复制到,如图 然后重新运行就不会报哪个错误啦 不过我感觉还会报其他的错误, 小白太难了. 看来有些还真的离不开C盘 原文地址:https://www.cnblo

一个小白走进了前端大门

大三上学期放假,心里就一直焦虑,马上大四了,在学校都玩两年半了,一点都没学习,快毕业了,该干点啥啊?学的采矿专业,现在煤炭行业很不景气,再一个根本不想干这行. 想来想去,先学修电脑吧,以后在小区附近开个电脑维修店(在学校经常给同学修电脑),学了学了几天之后,一次偶然和半年不联系的哥们聊天,他问我:干啥呢大哥?我说我在学修电脑,他说修电脑多没技术含量,现在web前端挺好,入门也快,待遇也高,于是我就接触了前端. 学的第一天,感觉css好难,不懂是啥,于是在贴吧加了个吧友,要了qq,第二天我问他一个

一个小白App开发需要了解的基本技术

本文针对小白用户对App做一个简单的介绍,首先要了解App都有哪些类型,不同的类型适用于哪些需求,用户可以根据自己的需求选择不同的App开发. 一 App有哪些形式 WebApp:简单来说,Web App就是针对iOS/Android优化后的web站点,用户不需要下载安装即可访问.一般的web站点测重使用网页技术在移动端做展示,包括文字,视频,图片等,而Web App更侧重“功能”,是基于网页技术开发实现特定功能的应用,必须依赖手机浏览器运行.Web App开发成本低,维护更新简单,支持云修复,

一个小白安装Win10、CentOS 7双系统的经历

最近心血来潮,想学Linux,所以根据网上的建议,买了鸟哥的书.为了以后学习方便,准备安装CentOS7.准备好镜像文件和U盘后,4号晚上八点多开始施工,本以为几个小时就可以弄好的东西,第一次让我明白了什么叫理想与现实的差距.鉴于CentOS7安装的繁琐程度和鸟哥的火热程度,我决定把我安装的全过程写下来,希望能帮助到想要学习的小白们.在这篇教程里,我把我遇到的问题也写了出来,因为我从解决这些问题的过程中,学到了很多知识,如果你也是个小白的话,希望你耐心看下去. 另外,欢迎大神们指点批评~ 事先声

经验分享|小白一夜变身前端大神,究竟经历了什么

A. 初级阶段 本阶段主要是基本的网页技术,学会这些技术你就会制作一些常见的网页和简单的特效. Photoshop:几乎无人不知的作图软件,对于做前端的朋友来说可以作图,还可以用来切图: 互联网原理和HTML:作为前端工程师就要了解互联网的基本原理,像是协议.网站运行原理等等:HTML不用多说必须熟练掌握的超文本标记语言: CSS基础和高级技巧:CSS作为层叠样式表是一种用来表现HTML或XML等文件样式的计算机语言.CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式