2014-7-22

一、first-child与firsty-of-type

  :first-child 匹配的是某父元素的第一个子元素,可以说是结构上的第一个子元素。

  :first-of-type 匹配的是该类型的第一个,类型是指什么呢,就是冒号前面匹配到的东西,比如 p:first-of-type,就是指所有p元素中的第一个。这里不再限制是第一个子元素了,只要是该类型元素的第一个就行了,当然这些元素的范围都是属于同一级的,也就是同辈的。

  IE6~IE8不支持first-of-type选择器。

二、display: none与visible: hidden

  display: none会让元素失去高宽等。如果一个元素的隐藏和显示占位不影响其他元素的位置和布局,则可以使用display: none和display: block来控制它的隐藏和显示。相反,如果一个元素的隐藏和显示占位会影响其他元素的位置和布局,则需要使用visible: hidden和visibel: visible来控制它的隐藏与显示。

三、可以使用element:hover element{display: block}控制鼠标移上后子元素的显示。之前还一直傻傻的以为只能给元素绑定hover事件来控制其他元素的显示和隐藏...不过用hover直接控制样式,在IE6下是不支持除a元素以外的其他元素hover的。解决的IE6下的这个问题。有两种方法:

1、将a元素嵌套在其他元素里面,设置a元素display: block; padding: ;height: ;让a元素撑满需要hover效果的外层元素

2、利用外部插件csshover.htc,下载该插件后,在html文件的head标签中写入body { behavior:url("csshover.htc"); }即可

推荐使用第二种方法,方便简单

四、absolute定位的子容器不能用内容将其自身撑开到自适应的宽度的问题:当absolute定位的一个元素的任一级父容器被设置为float或者display: inline-block时,就会出现这个问题。解决的方法是,给该absolute定位的元素加上white-space: nowrap;样式强制不换行。引申一下,对于开发中遇到莫名其妙的换行问题,尝试一下使用white-space: nowrap;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>absolute定位的子容器不能被撑开的测试</title>
    <style type="text/css">
        div:after{ display: block; content: ""; clear: both; }
    </style>
</head>
<body>
    <div style="width: 960px; margin: 10px auto; ">
        <h1 style="background: #f4b75a;">出现absolute定位的子容器不能被撑开的问题</h1>
        <div style="float: right; display: inline; ">
            <a href="#" style="position: relative;">我的账户信息<i></i></a>
            <div style="position: relative;margin-top: -1px; ">
                <div style="position: absolute; top: 100%;right: 0;line-height: normal; background: #edebeb; ">
                    <a style="display: block;" href="#">我的订单</a>
                    <a style="display: block;" href="#">我的包裹</a>
                    <a style="display: block;" href="#">我的账户</a>
                    <a style="display: block;" href="#">我的余额</a>
                    <a style="display: block;" href="#">我的会员中心</a>
                    <a style="display: block;" href="#">我的现金券</a>
                    <a style="display: block; color: red;" href="#">我的金币(新)我的金币(新)</a>
                </div>
            </div>
        </div>
    </div>
    <div style="width: 960px; margin: 10px auto; margin-top: 200px; ">
        <h1 style="background: #f4b75a;">父容器没有浮动,absolute定位的子容器能被撑开</h1>
        <div style="display: inline; margin-top: 200px; ">
            <a href="#" style="position: relative;">我的账户信息<i></i></a>
            <div style="position: relative;margin-top: -1px; ">
                <div style="position: absolute; top: 100%;left: 0;line-height: normal; background: #edebeb; ">
                    <a style="display: block;" href="#">我的订单</a>
                    <a style="display: block;" href="#">我的包裹</a>
                    <a style="display: block;" href="#">我的账户</a>
                    <a style="display: block;" href="#">我的余额</a>
                    <a style="display: block;" href="#">我的会员中心</a>
                    <a style="display: block;" href="#">我的现金券</a>
                    <a style="display: block; color: red;" href="#">我的金币(新)我的金币(新)</a>
                </div>
            </div>
        </div>
    </div>
    <div style="width: 960px; margin: 10px auto; margin-top: 200px; ">
        <h1 style="background: #f4b75a;">解决absolute定位的子容器不能被撑开的问题</h1>
        <div style="float: right; display: inline; ">
            <a href="#" style="position: relative;">我的账户信息<i></i></a>
            <div style="position: relative;margin-top: -1px; ">
                <div style="position: absolute; top: 100%; right: 0;line-height: normal; background: #edebeb; white-space:nowrap; ">
                    <a style="display: block;" href="#">我的订单</a>
                    <a style="display: block;" href="#">我的包裹</a>
                    <a style="display: block;" href="#">我的账户</a>
                    <a style="display: block;" href="#">我的余额</a>
                    <a style="display: block;" href="#">我的会员中心</a>
                    <a style="display: block;" href="#">我的现金券</a>
                    <a style="display: block; color: red;" href="#">我的金币(新)我的金币(新)</a>
                </div>
            </div>
        </div>
    </div>
</body>
</html>

2014-7-22,布布扣,bubuko.com

时间: 2024-11-03 01:35:31

2014-7-22的相关文章

【2014.6.22】

这几天一直在看世界杯,看到很多同学压钱,就跟着压了,(当然是看到可以天上掉馅饼才……). 这几天的钱就像流水似的往外流(虽然没那么夸张). 不过让我再次体会到了 永远期待美好的事情发生,但不要期望天上掉馅饼,no pains,no  gains. [2014.6.22],布布扣,bubuko.com

[2014.5.22][UBUNTU]Ubuntu与Windows系统时间不同步的问题

安装Ubuntu+Windows双系统时会遇到Windows和Ubuntu系统时间不同步的问题,这是因为Windows系统默认读取主板bios等硬件系统时间作为OS的当地时间;而MAc,Linux类的OS以主板bios等硬件系统时间作为UTC时间,然后操作系统的时间以UTC为标准按照使用者的时区设置加加减减.这就造成了中国用户会出现一个很有趣的现象:Ubuntu上的时间会比windows上的快8小时(至于是怎么算的 请童鞋自己掰手指头;是不是寓意Ubuntu快windows一筹?). 解决这个问

2014/08/22 – SVG

一.项目功能需求:将 HTML 中 span 元素集合映射成 SVG 格式文件. 参数: span 的绝对定位坐标和 transform 的集合,贝塞尔曲线的锚点绝对定位坐标和控制点绝对定位坐标(根据曲线路径绘制 span ),span 集合父容器的宽度和高度. 输出: svg 的字符串形式. 二.知识点:由于涉及到 css 的 transform 样式,所以会用 Matrix 的相关理论知识. 1. 沿着路径变化的文字: svg 中提供了 <textPath> 元素来产生文字沿着某条事先定义

Wikioi上的C语言试题分析【2014.7.22】

Question [1] 题目描述 Description 输入两个整数A和B,输出他们的和 输入描述 Input Description 输入为一行,包含两个整数A,B.数据保证A与B都在2^31-1的范围内 输出描述 Output Description 输入A与B的和,数据保证A与B的和在2^31-1的范围内 样例输入 Sample Input 1 3 样例输出 Sample Output 4 pass code: #include <stdio.h> int main() { int

2014.8.22我大一的线性代数学习

我的大一的线性代数:借此怀念一下我大一的线性代数的学习 一.扯扯虚的 进入大一,学的是计算机专业,说是计算机专业,不过看看大一的课程,就是各种数学,其中就有线性代数. 线性代数上课,最重要的就是讲怎么学数学,嗯,就是讲故事!!第一节课是说"兵法"和"剑法".剑法是什么,是"一人敌",再怎么练只能是一个人打,威力很小:"兵法"是"万人敌",学习"兵法",统兵打仗,能改变大局."兵

2014.8.22数组

数组:内存 连续 同一类数据的一块区域 分类:一维数组    二维数组(两个下标)    三维数组 一维数组: 1.定义 int[] a=new int[5];//a[0]元素,0下标,长度为5,最大下标是4 2.赋值 a[0] = 12; 3.取值 int b = a[0]; 4.运算 a.Length 数组a的长度 eg: 1 //球场上有10个球员,裁判给球员打分(0-9),赋值后,求总分.平均分 2 //把最高分和最低分求出来 3 try 4 { 5 Console.WriteLine(

2014/9/22

1System.in 1 public class wori //先用InputStreamReader套System.in,再用BufferedReader套是常用方法 2 { 3 public static void main(String args[]) 4 { 5 InputStreamReader a = new InputStreamReader(System.in); // System.in是InputStream父类的引用 6 BufferedReader b = new Bu

银保项目总结2014.8.22

自我分析见证自己的成长.. 银保项目总结: 1.开发前没有系统的分析所有的流程 2.思考问题思路不清晰 3.很多东西忘记了,导致效率底下,开发工具使用,不熟悉 学习技巧: 一旦有一个操作,就要分析操作的所有流程; 所有的web项目都是 1.验证数据 2.清除数据 3.获值(jquery) 4.传入后台(form表单,ajax,a标签href,action) 5.后台处理传入数据库 6.数据库db操作函数,复用select_paramIndex_returnParam 7.传值(out.print

2014.8.22

技术: Linux命令  sed  awk http://blog.csdn.net/a81895898/article/details/8482333 RESTFul  SOAP 区别 http://www.blogjava.net/diggbag/articles/361703.html

每日一记--2014.9.22

说好的每日一记呢, 哎,上周接到了老师的任务,要把项目中的后台数据处理代码读懂,于是就没有时间每天搞段小代码来写写了. 但是通过这一周,自己也学到了不少东西. 1. 首先是如何读别人写的代码: 先看 improt 大概用到什么类: 然后看main,有什么变量的初始化(有的写在一个init函数里了): 找到核心类,核心函数(调用了其他函数的函数),看其实现主要功能流程 . 最后再看其他那些被调用的函数,它们的具体实现细节. 2. 其次是如何给别人讲代码,做code review: 先讲其实现的功能