今天测试页面,发现刚刚开始总是有一个瞬间是没有样式表的感觉,错乱的样子。
首先的感觉就是样式表生效是在页面之后发生的,看了一下样式表写法,是 import方式
于是搜索了一下,得到答案:

引用
其实 link 与 @import 在显示效果上还是有很大区别的,基本上来看 link 的加在会在页面显示之前全部加在完全,而 @import 会是读取完文件之后加在,所以如果网速很好或很快的情况下,会出现先开始无css定义,而后加载css定义。@import加载页面时开始的瞬间会有闪烁(无样式表的页面),然后才恢复正常(加载样式后的页面),Link没有这个问题。

他们从方法上是一样的,只是在浏览器识别上有点差距,link在支持CSS的浏览器上都支持而@import只在5.0以上的版本有效,而且还能用于浏览器过滤也就是hack的使用,兼容一些老版本的浏览器。所以最好还是使用link通用型更强,但是对于高版本的浏览器,也就是现在的浏览器来说,其实都一样,这是个没有太大意义的区分 。


也就是延后的问题了,更换为link后正常

参考:http://zhidao.baidu.com/question/71006507.html
iPhone现在还是蛮时髦的,可以做很多有趣好玩的事情,单单是用手指拨弄一下屏幕就感觉到很新鲜:可以用手指来操作放大和翻页 ^_^ 甚至有重力感应的游戏,太牛了

不少网站也开发了iPhone的专门页面,比如YouTube和6.cn就有了专门的页面,也许还不能说是一个很大的市场,但是毕竟可以有另外一个受众人群,所以有需要的话,还是可以花点时间做一个支持的。当然,一般的网页都可以访问,只是体验没有那么好,需要做一些修改。

很多人会很惊喜说iPhone可以看电视剧看视频了,因为6.cn有专门的页面提供访问,阿权也要做专门的页面看杂志,呵呵,以后也可以用iPhone看杂志啦~
阿权对于本次制作特别的做了一下记录,希望有需要的朋友可以有个参考
有问题可以来我blog交流一下 http://www.aslibra.com

做页面之前,先查一下相关资料:

引用
由于采用和桌面系统类似的OS X操作系统,iPhone包含了完整的Safari浏览器,可以完整显示HTML,XML网页,双击则可局部放大。系统可以自动选择Wi-Fi(802.11b/g)、GPRS(EDGE)、蓝牙2.0等连接方式,完全不需要手动设置。

动作传感器可以感应用户横握手机时自动转为横屏显示。  
屏幕分辨率:320×480(160dpi)


也就是说,基本上按照标准网页制作就好,习惯用div就好,不习惯也可以table一下的 ^_^

1 设计页面

我们的设计师monkey设计的:
点击在新窗口中浏览此图片

iPhone可以横着和竖着浏览,所以页面一般需要做100%适应,这样用户转一个方向也可以看的很自然。屏幕效果当然是按照320×480来考虑了。

2 指定页面的宽度和其它参数

阿权在做这些页面的时候的起初也不知道为何别的网站浏览起来是自适应的。从iPhone看我做的网页并非我想象着的那样自适应到320的宽度,而是有默认的宽度的,大概是1024的宽度。

点击在新窗口中浏览此图片

这一点就得研究一下了,不太懂英文,所以就只能找实例来研究啦!

比如看看 http://iphone.6.cn/
研究方法:保存下来,用iPhone浏览看看是否正常,然后去掉自己觉得可能是生效的定义方法,看看是否不正常,这样应该就可以了,够笨笨的方法了,呵呵

得到结论:
meta定义可以使得页面宽度让iPhone知道限定屏幕宽度
<meta id="viewport" name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
看字面理解就是:宽度320,默认比例1.0,最大放大比例1.0,用户不能放大

这个看具体页面可以细节调整。

比如我设置的是首页不能放大,参考宽度为320
width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;

可以看到效果啦:
点击在新窗口中浏览此图片

那在杂志页面就设定为:
width=760; initial-scale=0.6; maximum-scale=1.0; user-scalable=1;
也就是参考宽度是760,默认显示0.6的比例,可以最大放大到1.0,可以缩放

点击在新窗口中浏览此图片

把以上元素应用在页面就可以啦~~
你可以用iPhone来访问看到效果哦:
http://www.zcom.com/iphone/

3 设置页面加载完成的位置(参考6.cn)

一般页面都有页头显示,所以可以控制页面移动一下,直接显示内容
上面的图片可以看到页头有内容,加上处理体验就好很多:

点击在新窗口中浏览此图片

点击在新窗口中浏览此图片

实现的脚本

<script type="application/x-javascript">
addEventListener("load", function()
{
 setTimeout(hideAddressbar, 0);
}, false);

function hideAddressbar()
{
 window.scrollTo(0, 140);
 //xy位置,根据页面进行调整
}
</script>


4 让用户访问www页面自动跳转到iPhone页面

php方式:
$_SERVER[HTTP_USER_AGENT]的值是:
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; zh-cn) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3
确认一下有没有iPhone字样也许就可以了


if(strstr($_SERVER[HTTP_USER_AGENT],"iPhone")){
 header("location:/iphone/");
 die();
}


js方式:

<script language="javascript">
<!--
//2007-11-24 hqlulu for iphone
var userAgent=navigator.userAgent;
if(userAgent.indexOf("iPhone")>0)
 window.location="/iphone/";
//-->
</script>


5 让iPhone主界面有你的图标,点击访问

我是参考了6.cn的做法啦,呵呵,具体参考一下作者网站:
Livid 在 2007-11-11 发布的做法:
http://www.livid.cn/doc_view.php?doc_id=5684

也就是一个压缩包对图标的定义:
1 Default.png 背景图
2 icon.png 图标文件
3 Info.plist 定义
4 Embark 不清楚...

查看Info.plist,修改一下就成为自己定义的了:

<key>EmbarkURL</key>
<string>http://www.zcom.com/iphone/?icon</string>


另外一个名称定义阿权就不太清楚了

<key>CFBundleIdentifier</key>
<string>com.zcom.embark</string>


参考作者的安装方法就成啦:

点击在新窗口中浏览此图片

之前一直烦恼blog看文章的时候选择不了文字

1 选择的次序很奇怪,选择有时候选择不了
2 有时候选择一部分选择不了,拖动一下就选择了一个大范围的文字?

到底是什么语句导致这个效果了??

今天我把代码精简,查找到问题所在了。。。

<div id="wrapper">
   <div id="innerWrapper">
     <div id="mainWrapper">
           <div id="content" class="content">
               <div id="innerContent">
                   <p>test</p>
                   <p>test</p>
               </div>
           </div>
     </div>
 </div>
</div>


查找到了是innerWrapper的定义的问题:

#innerWrapper {
   margin:0px;
   width: 100%;
   /*position: relative;*/
   text-align: left;
   background-color: #FFFFFF;
   overflow:hidden;
}


也就是 position: relative; 的定义会导致文字选择有问题了,大家有相关问题可以考察一下这个

在Blueidea问过,有人说起过,但好像相似,但是好像刚好相反了:

引用
遇到过,是层的 position:absolute 导致的,改成 relative或者浮动定位没遇到过问题

1. Block和inline元素对比

所有的HTML元素都属于block和inline之一。
block元素的特点是:
总是在新行上开始;
高度,行高以及顶和底边距都可控制;
宽度缺省是它的容器的100%,除非设定一个宽度
<div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子。

相反地,inline元素的特点是:
和其他元素都在一行上;
高,行高及顶和底边距不可改变;
宽度就是它的文字或图片的宽度,不可改变。
<span>, <a>, <label>, <input>, <img>, <strong> 和<em>是inline元素的例子。

用display: inline 或display: block命令就可以改变一个元素的这一特性。什么时候需要改变这一属性呢?
让一个inline元素从新行开始;
让块元素和其他元素保持在一行上;
控制inline元素的宽度(对导航条特别有用);
控制inline元素的高度;
无须设定宽度即可为一个块元素设定与文字同宽的背景色。

2. 再来一个box黑客方法

之所以有这么多box黑客方法,是因为IE在6之前对box的理解跟别人都不一样,它的宽度要包含边线宽和空白。要想让IE5等同其他浏览器保持一致,可以用CSS的方法:

padding: 2em;
border: 1em solid green;
width: 20em;
width/**/:/**/ 14em;

第一个宽度所有浏览器都认得,但IE5.x不认得第2行的宽度设置,只因为那一行上有空白的注释符号(多么蠢的语法分析!),所以IE5.x就用20减掉一些空白,而其他浏览器会用14这个宽度,因为它是第2行,会覆盖掉第1行。

3. 页面的最小宽度

min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个,而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个<div> 放到 <body> 标签下,然后为div指定一个类:

<body>
<div class="container“>

然后CSS这样设计:

#container
{
min-width: 600px;
width:expression(document.body.clientWidth < 600? "600px": "auto" );
}

第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。

同样的办法也可以为IE实现最大宽度:

#container
{
min-width: 600px;
max-width: 1200px;
width:expression(document.body.clientWidth < 600? "600px" : document.body.clientWidth > 1200? ”1200px“ : ”auto";
}

4. IE与宽度和高度的问题

IE不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。这样问题就大了,如果只用宽度和高度,正常的浏览器里这两个值就不会变,如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。

比如要设置背景图片,这个宽度是比较重要的。要解决这个问题,可以这样:

.box
{
width: 80px;
height: 35px;
}

html>body .box
{
width: auto;
height: auto;
min-width: 80px;
min-height: 35px;
}

所有的浏览器都可以使用第一个box设置,但IE不认得第2段设置,因为其中用到了子选择器命令。第2个设置更特殊些,所以它会覆盖掉第1个设置。

5. 字体变形命令

text-transform 命令很有用,它有3个值:text-transform: uppercase, text-transform: lowercase 和 text-transform: capitalize。第1个会把文字变成全大写,第2个变成全小写,第3个变成首字母大写。这对拼音文字非常有用,即使输入时有大小写错误,在网页上也看不到。

6. IE中图片文字消失的问题

有时会遇到文字或背景图突然消失的问题,刷新一下又出现了,这在靠近漂浮元素时更容易发生(注:没见过)。此时,可以为消失的元素设定: position: relative ,如果不行,再考虑为这些元素指定一个宽度试试。

7. 不可见文字

不论因为何种原因希望某些网页文字不在浏览器中显示,比如为了打印或为了小屏幕而让某些文字不显示,都可以用 display: none 。这非常简单,但有时对某些人这有点没用,他们能去掉这个控制,这时就要用到: position: absolute; left: -9000px 。

这实际上是把文字指定在页面以外显示。

8. 为手持设备设计专门的CSS

也就是手机/PDA等小屏幕用户,可以专门设计一个CSS来让网页显示更舒服些。为此,可以把浏览器窗口调整到150点宽来看效果。指定专门的手持设备的CSS的语法是:

<link type="text/css" rel="stylesheet" href="handheldstyle.css" media="handheld" />

也可以阅读专门的手持设备可用性。

9. 3D效果的按钮

以前要想制作带有3D效果,并且点击下去还会变化的按钮,就得用图片替换的方法,现在CSS就可以了:

a
{
display: block;
border: 1px solid;
border-color: #aaa #000 #000 #aaa;
width: 8em;
background: #fc0;
}

a:hover
{
position: relative;
top: 1px;
left: 1px;
border-color: #000 #aaa #aaa #000;
}

至于效果,还可以自己调整了。

10. 在不同页面上使用同样的导航代码

许多网页上都有导航菜单,当进入某页时,菜单上相应这一项就应该变灰,而其他页亮起来。一般要实现这个效果,需要写程序或专门为每一页做设计,现在靠CSS就可以实现这个效果。

首先,在导航代码中使用CSS类:

<ul>
<li><a href="#" class="home">Home</a></li>
<li><a href="#" class="about">About us</a></li>
<li><a href="#" class="contact">Contact us</a></li>
</ul>

然后分别为每一页的Body指定一个id,和上面类同名。如<body id="contact">。

然后设计CSS如下:

#home .home, #about .about, #about .about
{
commands for highlighted navigation go here
}

这里,当id设为home时,.home就会起作用,也就是class设为home的那一行导航条就会显示出特殊效果来。其他页也是如此。

本文作者是:Trenton Moss。
发表网站是:http://www.webcredible.co.uk
今天制作div的高度控制的时候发现IE下控制div的高度很小的时候无效,特意查了一下相关文章。
最终有了解决方案,参考下面文章:

如果要制作一条高度小于12PX(大约)的线条,在IE中会显示出高于实际高度的,看下面。

<style>
.line{
background: #CCCCCC;
height: 6px;
}</style>

<div class="line"></div>


可看出实际高度大于6PX,这也算是IE的一个BUG吧。以下三种方法可解决这个问题,推荐使用第一种方法。
1:
分页: 2/6 第一页 上页 1 2 3 4 5 6 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐