問題描述

我剛剛開始編寫一個編程博客,我使用 SyntaxHightlighter Evolved 插件來格式化我的代碼。在大多數瀏覽器上,這是正常工作。但是,如果我嘗試從 iPhone 或 iPad 查看網站,行號和代碼將不再對齊。基本上,問題似乎是行號和代碼字體是獨立的大小 (見下圖) 。

我假設有人必須看到這個問題,所以我諮詢了 「甲骨文 Google」,但似乎找不到任何相關的東西。我也搜索這個網站無效。

作為程序員,我看了源代碼,但意識到需要一些時間來瞭解它的工作原理並解決問題。

我正在使用 Wordpress 版本 3.1.2 與二十十主題版本 1.2

我有以下插件活動:

  • WordPress 版本 4.1 的 Google Analytics(分析)

  • SyntaxHighlighter 版本 3.1.1

有沒有人看到 (有希望解決) 這個問題?還是有某種靈魂可以指向正確的方向?

如果您需要看到該網站,我的個人資料中會有一個鏈接。我不想 link-spam 😉

提前致謝!

更新:5/17/2011

我以為我已經找到了一個解決方案,但是它解決了 iPad 上的問題,這仍然是 iPhone 上的一個問題。所以賞金還是要抓住的。

最佳解決方案

這似乎是 SyntaxHighlighter 插件使用的底層 js 庫的一個問題。我自己加載了 js 演示,並在我的 iPhone 上得到了相同的偏移結果。我還不清楚原因,但是溝槽號的字體大小與代碼行不一致。

一個潛在的修復是將溝槽編號上的 font-size 調整一小部分以匹配代碼。媒體查詢可用於定位並僅針對 iPhone 和 iPad 設備應用修復。

我將以下代碼放入了 SyntaxHighlighter js 軟件包附帶的示例中。它糾正了我的 iPhone 上的問題。你可以將這個 CSS 放入你的 WordPress 主題並獲得相同的結果。

<style type="text/css">

/* ios safari line number fix */

  /* ipad */
  @media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
    td.gutter div.line { font-size: 1.4em !important; }
  }

  /* iphone */
  @media only screen and (max-device-width: 480px) {
    td.gutter div.line { font-size: 1.4em !important; }
  }

</style>

它具有冗長的代碼片段 (50+行) 的 holds up well for me 。我沒有 iPad 進行測試。

次佳解決方案

事實證明,二十個主題的樣式表 (style.css) 獨立地修改了 precode 的大小。這似乎是導致問題的原因。而且,與其他文字相比,它增加了字體的大小,導致它們太大。

這些是導致問題的線條:

/* =Mobile Safari ( iPad, iPhone and iPod Touch )
-------------------------------------------------------------- */

pre {
    -webkit-text-size-adjust: 140%;
}
code {
    -webkit-text-size-adjust: 160%;
}

我評論了這兩個部分:

/* =Mobile Safari ( iPad, iPhone and iPod Touch )
-------------------------------------------------------------- */


/*
pre {
    -webkit-text-size-adjust: 140%;
}
code {
    -webkit-text-size-adjust: 160%;
}
*/

所以我想我在回答自己的問題的奇怪的位置。感謝所有誰花時間看這個。特別是 @DaveKonopka 誰在寫作時是唯一一個想出一個可能的解決方案。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。