【问题标题】:Why is my CSS different in mobile safari?为什么我的 CSS 在移动 Safari 中不同?
【发布时间】:2011-02-11 13:08:17
【问题描述】:

ChromeFFSafari(对于 Windows)上,我的页面看起来完全一样:

但在 Mobile Safari (iPhone 4) 上是这样的:

我的问题是移动 Safari 页面上的字体大小没有定义。请告诉我,我的 CSS/标记中的哪些内容如此糟糕?

标记:

<body>
    <div id="container">
        <div id="header"><h1><a href="./DDD Blog_files/DDD Blog.htm" title="back to home page">DDD blog<span class="hidden"> (home)</span></a></h1></div>
    <div class="newPost controls"><a href="http://localhost:1906/posts/update">Post something new</a></div>
<div class="post">
    <h2><a href="http://localhost:1906/posts/2/title-of-the-first-blog-post">Title Of The First Blog Post</a></h2><span class="datetime" title="2010-12-15 00:00:00Z">1 month ago</span>
    <div class="controls"><a href="http://localhost:1906/posts/update/2">edit</a></div>
    <div class="body mattyMarkup">
        <p>A massive paragraph of text should represent a blog entry. Every line of this should add to the enormous example which I am trying to convey. Sometimes <a href="http://google.com/" title="http://google.com">links will dot</a> the post body landscape. Other times, <em>sweet-as</em> emphasis and punctuation will be required to communicate the message.</p>
<p>All in all, this is the end.</p>
    </div>
        <div class="comments">
            <a class="summary" href="http://localhost:1906/posts/detail/2#newComment">add the first comment</a>                
        </div>
</div>  
<div class="post">
    <h2><a href="http://localhost:1906/posts/1/the-original-and-best---post-1">The Original and Best - Post #1</a></h2><span class="datetime" title="2010-10-07 00:00:00Z">4 months ago</span>
    <div class="controls"><a href="http://localhost:1906/posts/update/1">edit</a></div>
    <div class="body mattyMarkup">
        <p>This text will be somewhat more brief than the post above, intended to denote a more recent thought. </p>
<p>I have some problems generating meaningful sentences to simply string together for sample text so this will be my second last sentence. This is the last.</p>
    </div>
        <div class="comments">
            <a class="summary" href="http://localhost:1906/posts/detail/1#newComment">3 comments</a>                
        </div>
</div>      
    </div>
    <div id="footer"></div>
</body>

CSS:

body {
    margin: 0;
    border-top: solid 5px #3B9AE6;
}

.hideOverflow { overflow: hidden; }

#container {
    margin: 0 auto;
    width: 40em;
    padding: 0 1em;
}

.post {
    background-color: #FFFFFF;
    margin: 5em -1em;
    padding: 1em 0;
}

.post h2 { margin-top: 0; float:left; }
.post span.datetime { margin: 0 1em; }
.post .body { clear: both; }
.post .comments  a.summary { float: right; font-size:.9em; }
.post .controls { float: right; }

.updatePost form input[name], .updatePost form textarea[name] { width: 100%; }
.updatePost a.delete { float: right; margin-top: .25em; }

#footer { }


/*
Generics
*/

body { 
    color: #333; background-color: #fff;
    line-height: 1.3em;
}
body, input, textarea { font: 14px "Lucida Sans",tahoma,sans-serif; }

h1, h2, h3, h4, h5, h6 { font-family: Georgia,serif; font-weight: normal; color: #377AB0; }
/* */
h1 { font-size: 2.5em; }
h2 { font-size: 1.8em; }


a, a:link { color: #3B9AE6; text-decoration: underline; }
a:hover, a:active, a:hover:visited , a:active :visited { color: #333; text-decoration: underline; }
a:visited { text-decoration: none; }

input.tip, textarea.tip { color: #aaa; }
form, fieldset { margin:0; padding:0; border:0; }

.infoBlock { margin: 1em 0; padding: 1em; background-color: #F2F9FD; }


/*
Specifics
*/

#header h1 { color: #D6D6D6; }
#header h1 span.hidden { color: #fff; }
#header h1 a { color: #D6D6D6; text-decoration: none; }
#header h1 a:hover { background-color: #D6D6D6; color: #fff; text-decoration: none; }

.post { margin: 4em 0; }
.post h2 a { color: #333; text-decoration: none; }
.post h2 a:hover, .post h2 a:active { color: #333; text-decoration: underline; }
.post span.datetime { color: #aaa; line-height: 1.8em; }

ol.comments { 
    list-style-type: none; 
    background-color: #F2F9FD;
    margin: 2em 0;
    padding: 1em;   
}
ol.comments span.datetime { font-size: .9em; }
ol.comments span.name { color: #3B9AE6; }

.newComment {
    border-top: dashed 1px #ccc;
    margin: 2em 0;
    padding: 1em;   
}
.newComment form p { font-size: .9em; }

.updatePost input[name=title] { font-size: 1.2em; }
.updatePost a.back { margin: 0 1em; }

.controls a, .controls a:link, a.command, a.command:link { color: red; text-decoration: underline; }
.controls a:hover, .controls a:active, .controls a:hover:visited , .controls a:active :visited,
    a.command:hover, a.command:active, a.command:hover:visited , a.command:active :visited{ color: #333; text-decoration: underline; }
.controls a:visited, a.command:visited { text-decoration: none; }

【问题讨论】:

    标签: iphone html css browser safari


    【解决方案1】:

    众所周知,Mobile Safari 会放大文本的某些部分(尤其是段落)。这是为了让您的网页内容更易于阅读,而无需放大太多。

    您可以尝试将 iPhone 特定的媒体查询与

    html {
        -webkit-text-size-adjust: none;
    }
    

    为了阻止这种情况发生,但这会让你的文本真的很难阅读,而不必向各个方向平移。

    【讨论】:

    • 我想了解这会如​​何工作。因为我看到许多其他网站(甚至是上面示例中的博客)在 i4 上呈现完全相同的内容。他们是在做一些特殊/额外的事情来消除你所指的效果,还是我在做一些非标准的事情让我搞砸了?
    【解决方案2】:

    您是否尝试过为文本元素设置百分比大小?

    body{
      font-size:100%;
    }  
    
    h1{
      font-size:130%;
    }
    
    h2{
      font-size:120%;
    }
    
    p{
      font-size:90%;
    }
    

    字体大小应根据视图屏幕调整大小。

    【讨论】:

    • 如果你想为你的'h'标签设置一个精确的大小,使用 A List Apart 中列出的方法:target ÷ context = result alistapart.com/articles/fluidgrids
    • 我已经这样做了,对吗?我的意思不是 % 但我使用的是相对标题大小 (em)。
    • 您尚未设置基本体字体大小,并且由于移动设备会根据方向调整大小,因此值得(尝试)将字体大小设置为百分比 - 这样它们应该保持不变与等级制度一致,即。 h1 将始终为主体大小的 120%(请记住,它已设置为 100%)并且 p 标签设置为 90%。主体基数为 100%。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-02
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 2012-07-13
    • 2021-09-08
    • 1970-01-01
    相关资源
    最近更新 更多