2014-6-29

  前段时间学习HTML和CSS,天天练习写页面。由于刚开始对很多属性、标签、选择符不熟悉,写页面那个慢啊,而且往往花了大把时间写出来的页面,效果跟便便一样。。。~~上周终于结束了HTML和CSS的学习,开始正式学习JS,感觉任务相对较轻。所以趁这会饭后无聊的时间,把前段时间的知识点——我认为有必要记录的总结下,都是些零零碎碎的、基本技巧,不过对像我这种rookie来说还是很有帮助的。

  <1>居中的方法:

    1.水平居中:

        水平居中的话比较容易实现:

      1)行内元素:直接设置父级元素的text-align属性为center就好了。

      2)块级元素:在宽度确定的情况下,设置自己的左右margin:0 auto;就能在水平方向居中。

    2.垂直方向居中:

        在CSS中垂直方向居中比较麻烦,不过也有很多方法可以实现,目前以我的了解,比较好用的垂直居中的方法有下面几种:

        1)用display:table-cell;将需要居中的div的显示方式设置为表格单元格,然后使用vertical-align:middle属性将其居中。(demo代码就不写了,这里介绍下思路,有兴趣的同学可以自己试试。另,table-cell在创建流动布局时也是个神器,只不过对IE及老版本浏览器的兼容性不太友好~关于这个可以参看Charles Wyke-Smith的《CSS权威指南》一书)

        2)行内元素垂直居中:这个简单,只需设置其line-height和height为相同值即可。

        3)这种方法,在 content 元素外插入一个 div,让其浮动,并设置此 div height:50%; margin-bottom:-contentheight/2;

          代码如下:

<div id="floater"></div>
<div id="content">
	Content here
</div>
#floater	{float:left; height:50%; margin-bottom:-120px;}
#content	{clear:both; height:240px; position:relative;}

        4)这个方法使用了一个 position:absolute,有固定宽度和高度的 div。这个 div 被设置为 top:0; bottom:0;。但是因为它有固定高度,其实并不能和上下            都间距为 0,因此 margin:auto; 会使它居中。

            HTML代码:

<div class="content">  Content goes here</div>

            CSS代码:

           #content { position:absolute;top:0; bottom:0;left:50px; margin:auto;height:240px;}  <2>介绍一下display:inline-block属性  1.大家都知道,HTML中块级元素会默认换行,而且默认占满父级元素的宽度。而inline-block这个属性可以让块级元素在同一行显示,而且在没有声明宽度的条件下,会让其宽度仅仅足够包含其内容。其实从它的字面意思就可以看出来这个设置了这个属性的元素,其表现行为是介于inline元素和block元素之间的,因为我们不仅可以像块级那样设置其宽和高,又能像行内元素那样让他们并排显示。说道这可能有同学会想到,既然能让元素并排显示,那能否利用其创建分栏布局呢?答案是当然可以,而且用这种方法布局不用像用float那样要清除浮动,也不会对文档的前后造成影响,也不用理会float布局中要求每列元素必须具有相同高度(否则会出现锯齿相错的现象)可以说是代替float布局的一种很好的方法。不过,要是想实现文字环绕效果,那最好的方法还是float,毕竟设计出float属性的初衷不就是为了这个么~不过,CSS中好用的属性总有个但是……,我这里就我的理解说说关于这属性的”但是……“吧!  2.首先是兼容性了。。。。inline-block在IE6/7中有兼容性问题,使用的时候需要hack下,关于这点,有兴趣可以看下这人的博客http://www.zhangxinxu.com/wordpress/  3.然后就是用inline-block排列的块级元素之间会默认有几个px的间距(如果你标签换行的话),解决的方法有几个:1)设置父元素的font-size=0(然后在子元素里再修改回来);2)用letter-spacing;同样也是设置父亲元素的letter-spacing为负值,不过这得根据当前字体大小,使用的是何种字体决定,通常是-3px到-8px之间(同样要在子元素样式中修改到正常,不过0pera貌似极限为1px...);3)比较稳妥的方法,将设置了inline-block属性的块级元素标签的闭合标签和开始标签挨着写,中间不要有空格或者换行(其实说到底这里的间距还是因为换行或者空格造成的)。  4.用inline-block布局的话就不可避免的要用到vertical-align属性,而此属性的BUG较多,IE中对此属性的解释跟DOM支持浏览器不太一样,不过在内容的行高不是很大的情况下基本看不出来区别。<3>.margin-top的一点问题。    很多时候我们在用margin-top的时候会发现怎么没跟父元素拉开距离,反而把父元素跟body之间顶开了呢?其实是这样的:在为父亲元素的第一个子元素设置margin-top后,如果父亲元素没有设置border或者padding,那这个子元素的margin会一直向上找,直到遇到border或者padding或者上一个块级元素为止。既然我们明白了机理,就不难解决这个问题。容易想到的就是直接为父亲元素设置border或者padding,不过有时候我们根本不需要border怎么办呢。其实还有个方法就是给父亲元素加上个overflow:hidden属性,这样,子元素的margin-top就乖乖听话了。(顺带提一下,overflow:hidden也可以在子元素浮动时加在父元素上,强制父元素包含浮动的子元素)。

  好了,絮絮叨叨,暂时就先写到这吧,水平有限,哪里有不对的地方欢迎指出来~大家共同学习,共同努力!

  文章部分引用:http://www.qianduan.net/css-to-achieve-the-vertical-center-of-the-five-kinds-of-methods.html

     

2014-6-29

时间: 2024-10-29 17:38:26

2014-6-29的相关文章

&lt;2014 04 29&gt; c/c++常用库总结

C 标准库 ============================================================================================== C++ 标准库 STL 标准库中提供了C++程序的基本设施.虽然C++标准库随着C++标准折腾了许多年,直到标准的出台才正式定型,但是在标准库的实现上却很令人欣慰得看到多种实现,并且已被实践证明为有工业级别强度的佳作. 1. Dinkumware C++ Library 参考站点:http://w

2014.4.29 新入职第二天

很开心,入职的第二天,同事们都很友好和善.加油! 2014.4.29 新入职第二天,码迷,mamicode.com

2014.04.29

汇编语言是依赖于处理器的.不同的处理器上面的汇编语言是不一样的. 语言的发展有一个趋势,就是离硬件越来越远.从汇编,到C,C++,面向对象的Java等,能够发现,后面的语言越来越具有可移植性,不绝对依赖于底层硬件.比如跨平台的Java,其卖点之一就是其跨平台可移植性.还有一个点,就是越来越抽象,语言本身的思想点越来越明显.比如高级语言里面的面向对象思想,多线程,设计模式,通信模型等等,都是随着语言本身发展而来的.在低级语言中,如此抽象结构的东西是没有的. 计算机游戏. 计算机游戏只是计算机应用的

2014.3.29阿里巴巴暑期实习笔试题分析

参考:http://blog.csdn.net/iloveyoujelly/article/details/22941531 下面中的[分析]是我给出的. 2014.3.29阿里巴巴暑期实习笔试题分析 一.单选 1.假设一个主机ip为192.168.5.121,子网掩码为255.255.255.248,则该主机的网络号部分(包括子网号部分)为-- A.192.168.5.12  B 192.168.5.121   C 192.168.5.120   D 192.168.5.32 参考答案 C [

&lt;2014 04 29&gt; *nix环境编程常用库总结

-------------------------linux常用头文件如下:POSIX标准定义的头文件<dirent.h>        目录项<fcntl.h>         文件控制<fnmatch.h>    文件名匹配类型<glob.h>    路径名模式匹配类型<grp.h>        组文件<netdb.h>    网络数据库操作<pwd.h>        口令文件<regex.h>   

第六届华为创新杯编程大赛第二轮(2014.4.29)

第一题:外星人比数的大小 来自星星的都教授除了所有感官比地球人高出七倍,始终容颜不老以外,还拥有一项在地球人看来特别神奇的能力,他会瞬间(0.00000000000000000000001s以内)按照他的规则比较地球人熟悉的两个十进制数字的大小,他比较的规则如下:1.将要比较的两个数字分别转换成二进制数字:2.计算两个二进制数字中1的个数,个数多的数字为两者中的大者:3.负数按照其绝对值进行比较:请利用地球人发明的计算机程序逼近都教授的特异功能,实现时可以有以下约束:1.输入数据为范围在-327

2014第29周二

比较郁闷的一天,早上各种差错迟到了2分钟,然后上午还没解决好cookie登录的问题,就说要帮忙演示,然后是上周做的定制后面发现的问题,下午及晚上花了很长时间修改测试验证,再次给自己留下深刻的教训,在自己测试时一定不能偷懒和假定,按照用户的操作把所有的过程都走一遍并注意观察结果考虑里面的问题,而不能想当然的怕一些重要的问题麻烦而不去测试,后面只会给自己带来更大的麻烦,也让别人对你个人的能力和信任度降低. 在代码开发上今天遇到几个问题:1.设置cookie问题,创建cookie要设置有效期,值设置为

2014.3.29 阿里巴巴 实习校招 笔试 题目及部分参考答案

一.单选(10×2'+10× 3' ,选错倒扣1分) 1.假设一个主机ip为192.168.5.121,子网掩码为255.255.255.248,则该主机的网络号部分(包括子网号部分)为—— A.192.168.5.12 B 192.168.5.121C 192.168.5.120D 192.168.5.32 参考答案 C 说明:ip和掩码位与 2.64位系统上,定义的变量int *a[2][3]占据的——字节 A 4 B 12 C 24 D 48 参考答案 D 说明:数组内存放的都是指针,64

2014.3.29阿里实习笔试

一.单选 1.假设一个主机ip为192.168.5.121,子网掩码为255.255.255.248,则该主机的网络号部分(包括子网号部分)为—— A.192.168.5.12   B 192.168.5.121   C 192.168.5.120   D 192.168.5.32 参考答案 C 2.64位系统上,定义的变量int*a[2][3]占据的——字节 A 4 B12  C 24 D 48 参考答案 D 3.Linux中使用df-h/home和du-sh/home所查看到的已使用的磁盘容

2014/9/29

1 1 package hello; 2 3 import java.io.DataInputStream; 4 import java.net.*; 5 6 public class helloworld 7 { 8 public static void main(String[] args)throws Exception 9 { 10 ServerSocket s = new ServerSocket(6666); //server端口号,用于监听 11 Socket ss = s.acc