web从零开始

八、CSS之——Hack的使用、框架集

2018-09-12  本文已影响0人  风中丶凌乱

框架集

框架集和内联元素的作用类似,都是用于在一个页面中引入其他的外部的页面框架集可以同时引入多个页面,二内联框架只能引入一个。在h5标准中,推荐使用框架集而不使用内联框架

使用frameset来创建一个框架集,注意frameset不能和body出现在同一个页面中,所以要使用框架集,页面中就不能使用body标签。

属性
rows,指定框架集中的所有的框架,一行一行的排列
cols,指定框架集中的所有的页面,一列一列的排列
这两个属性frameset必须选择一个,并且需要在属性中指定每一部分所占的大小。
frameset中国也可以嵌套frameset
frameset和iframe一样,它里边的内容都不会被搜索引擎所检查,所以如果搜索引擎检索到的页面是一个框架页的话,它是不能去判断里边的内容的,使用框架集意味着页面中不能有自己的内容,只能引入其他的页面。而我们每单独加载一个页面,浏览器都需要重新发送一次请求,引入几个页面就需要发送几次请求,用户的体验比较差
如果非得用建议使用frameset而不使用iframe

<frameset cols="30%, *, 30%">
    <!-- 
    在frameset中使用frame子标签来指定要引入的页面
    引入几个页面就写几个frame
     -->
    <frame src="demo069_表格.html" />
    <frame src="demo070_给表格添加样式.html" />
    <!-- 嵌套一个frameset -->
    <frameset rows="30%, 50%, *">
        <frame src="demo072_表格的布局.html" />
        <frame src="demo073_完善clearfix.html" />
        <frame src="demo074_表单.html" />
    </frameset>
</frameset>
</html>

ie6png图片的修复

在IE6中对图片格式png24支持度不高,如果使用的图片格式是png24,则会导致透明效果无法正常显示.

解决方法:

<body style="background-color: #bfa;">
    
    <div class="box1"></div>
    <div class="box2"></div>
    <img src="img/3.png" alt="大脸猫">

    <!-- 在body标签的最后引入外部的JS文件 -->
    <!--再创建一个新的script标签,并且编写一些js代码 -->

    <!-- 以下代码只会在IE6中执行,其他浏览器中无效 -->
    <!--[if IE 6]>
        <script type="text/javascript" src="js/DD_belatedPNG_0.0.8a-min.js"></script>
        <script type="text/javascript">
            DD_belatedPNG.fix("div,img");
        </script>
    <![endif]-->
</body>

条件Hack

有一些情况,有一些特殊的代码我们只需要在某些特殊的浏览器中执行,而在其他的浏览器中不需要执行,这时就可以使用CSS Hack来解决该问题。
CSS Hack实际上指的是一种特殊的代码,这段代码只在某些浏览器中可以识别,而其他浏览器不能识别,通过这种方式,来为一些浏览器设置特殊的代码。

条件Hack
它只对IE浏览器有效,其它的浏览器都会将它识别为注释,IE10及以上的浏览器已经不支持这种方式

<body>
    
    <!-- 以下内容只会出现在IE6中 -->
    <!--[if IE 6]>
        <p>为了您和家人的健康,请远离IE6!!</p>
    <![endif]-->

    <!--[if IE 8]>
        <p>当前浏览器是IE8!!</p>
    <![endif]-->

    <!--[if lt IE 9]>
        <p>该标签会在IE9以下的浏览器中显示</p>
    <![endif]-->

    <!--[if gte IE 9]>
        <p>该标签会在IE9及以上的浏览器中显示</p>
    <![endif]-->

    <!--[if lte IE 9]>
        <p>该标签会在IE9及以下的浏览器中显示</p>
    <![endif]-->

    <!--[if ! IE 6]>
        <p>你的浏览器不是IE6</p>
    <![endif]-->
</body>

属性Hack

<head>
    <meta charset="UTF-8">
    <title>属性Hack</title>
    <style type="text/css">
        body{
            background-color: #bfa;
            /*
            假设在IE6中需要将背景颜色设置为黄色才能达到和其它浏览器相同的效果
            */
            /*
            希望黄色背景只在IE6中生效
                在样式前添加一个下划线,则该样式只有IE6及以下的浏览器才可以识别
            */
            /*_background-color: yellow;*/

            /*添加了*的样式只有IE7及以下的浏览器认识*/
            /**background-color: yellow;*/

            /*在样式最后添加一个\0,则只有IE8及以上的浏览器才能识别*/
            /*background-color: yellow\0;*/

            /*
            CSS Hack不到万不得已的情况尽量不要使用
            */
        }
    </style>
</head>

选择符Hack

<head>
    <meta charset="UTF-8">
    <title>选择符</title>
    <style type="text/css">
        /*
        在选择器前添加* html 则该选择器只有IE6可以识别
        */
        * html body{
            background-color: #bfa;
        }
    </style>
</head>
上一篇 下一篇

猜你喜欢

热点阅读