淺談 Responsive-Table

Table

為了自己生活費衫哥,在學(xué)校 Assessment & Achievement Institute 兼職前端開發(fā)的工作。由于工作崗位僅面向?qū)W生,任務(wù)不重佳头,且工作時間靈活,工資也很優(yōu)厚晴氨,還是很感謝學(xué)校的康嘉。

第一個任務(wù)就是將一個網(wǎng)頁的表格改成自適應(yīng)布局,給移動端用戶一個良好的視覺呈現(xiàn)籽前。由于學(xué)校的網(wǎng)站都是由 Drupal 搭建的亭珍,前端界面通常都是通過 Drupal 提供的默認(rèn)組件和富文本編輯組合而成。雖然 Drupal 提供了自適應(yīng)的 theme, 但是網(wǎng)頁主體內(nèi)容的自適應(yīng)還需要前端人員單獨完成枝哄。

最初的表格是內(nèi)容編輯人員通過富文本編輯器插入表格編輯而成肄梨。Drupal 自動生成 width:100% 的表格。雖然非固定表格可以做到自適應(yīng)挠锥,但由于表格長度超出手機屏幕众羡,文字被壓縮成長條形,閱讀體驗十分糟糕蓖租。溫柔美麗的 PM Mellissa 只甩給我一句話粱侣,improve it on mobile辆毡。拿工資就要干實事,開始修改吧甜害。

首先改的就是其布局∏蜃颍考慮到手機和電腦不同的屏幕尺寸尔店,我確定了手機端采取縱向排列(默認(rèn)顯示第一項,折疊其余)主慰,電腦端橫向顯示(全顯示嚣州,不提供折疊)的設(shè)計方案。將 table 結(jié)構(gòu)的 HTML 代碼為 ul & li 結(jié)構(gòu)共螺。方便利用 CSS @media 屬性改變其布局该肴。

原來的 HTML 結(jié)構(gòu)是這樣的:

<table border="" cellspacing="" cellpadding="">
   <tr><th>Header</th></tr>
   <tr><td>Data</td></tr>
   ...
  </table>

修改后的 HTML 結(jié)構(gòu)是這樣的:

<ul>
    <li class="date">Sunday, October 11</li>
    <li class="detail">
        <ul>
        <li class="time">All day</li>
        <li class="event">IAEA Executive Committee Meeting</li>
       </ul>
    </li>
</ul>

之后是 CSS 部分,考慮到目前主流寬屏尺寸為1024px+藐不,設(shè)置1024px作為 CSS 樣式的分界線匀哄。我喜歡從小及大開始分析。當(dāng)尺寸小于1024px時雏蛮,保持 ul & li 原有的塊級屬性即可涎嚼,設(shè)置 width:100%,從上到下依次排開挑秉,利用 padding 屬性分隔即可法梯。

當(dāng)尺寸大于等于1024px,需要利用 float 屬性犀概、width 百分比自適應(yīng)立哑、margin: 0 auto 居中 將 ul&li 模擬成 table 顯示。注意 HTML 分層時考慮到最終的顯示效果姻灶,方便 CSS 在其上的運用铛绰,以免造成代碼過度復(fù)雜。

CSS 結(jié)構(gòu)如下:

/* Public Style */
.clearfix{}
/* Screen Size < 1024px */
@media screen and (max-width: 1023px) {
  ...
}
/* Screen Size >= 1024px */
@media screen and (min-width: 1024px) {
  ...
}

最后是簡單的 Javascript 完善木蹬,我希望在移動端可以額外提供點擊標(biāo)題展開詳情的功能至耻,默認(rèn)只顯示第一項的詳情。這樣更利于用戶在屏幕體積較小的情況下更快的搜尋到自己的目標(biāo)镊叁。利用 Jqueryclick & slide 事件實現(xiàn)即可尘颓。

在此分享一下我寫 Javascript 的思路過程:

  1. 先寫成一步一步執(zhí)行的順序式代碼
var $obj1 = $(""),
         $obj2 = $("");
var slideToggle = function(){};
$obj.bind("click",function(){ slideToggle(); });
...
  1. 提取公共項,轉(zhuǎn)成對象自變量的函數(shù)式代碼
var slideToggle = {
        obj1: $(""),
        obj2: $(""),
        animate: function(){},
        bind: function(){ this. animate(); },
        initial: function(){ this.bind(); }
};
slideToggle.initial();
  1. 根據(jù)實際運用情況晦譬,轉(zhuǎn)成可擴展的面向?qū)ο蟠a
function SlideToggle(target, content){
       this.target = target;
       this.content = content;
}
SlideToggle.prototype = {
       animate: function(){},
       bind: function(){ this.animate(); },
       initial: function(){ this.bind(); }
};
var slideToggle = new SlideToggle("", "");
slideToggle.initial();

經(jīng)驗:

  1. HTML, CSS, Javascript 強烈建議分離疤苹,方便以后修改。
  1. CSS 盡量調(diào)用 class 而不用 id敛腌,CodePen 提醒我的卧土。
  2. CSS 可以使用 Sass 更精簡惫皱,Javacript 盡量多思考,多優(yōu)化尤莺。

思考完了后旅敷,自己先在 CodePen 上做成 Demo 測試, 避免直接修改造成網(wǎng)站出錯同時易于合作分享。

下面是 Demo 鏈接颤霎,需要看源代碼的童鞋可以點擊查看媳谁,歡迎提供修改意見:
Responsive-Table Demo

IN THE END, 附網(wǎng)站最終實例動圖:


實例動圖

路漫漫其修遠(yuǎn)兮友酱,吾將上下而求索晴音。-- 屈原

原文鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市缔杉,隨后出現(xiàn)的幾起案子锤躁,更是在濱河造成了極大的恐慌它匕,老刑警劉巖诗充,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脂信,死亡現(xiàn)場離奇詭異供炎,居然都是意外死亡指么,警方通過查閱死者的電腦和手機韧骗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門市栗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鲫骗,“玉大人沈贝,你說我怎么就攤上這事杠人。” “怎么了宋下?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵嗡善,是天一觀的道長。 經(jīng)常有香客問我学歧,道長罩引,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任枝笨,我火速辦了婚禮袁铐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘横浑。我一直安慰自己剔桨,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布徙融。 她就那樣靜靜地躺著洒缀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上树绩,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天萨脑,我揣著相機與錄音,去河邊找鬼饺饭。 笑死渤早,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瘫俊。 我是一名探鬼主播蛛芥,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼军援!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起称勋,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤胸哥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赡鲜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體空厌,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年银酬,在試婚紗的時候發(fā)現(xiàn)自己被綠了嘲更。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡揩瞪,死狀恐怖赋朦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情李破,我是刑警寧澤宠哄,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站嗤攻,受9級特大地震影響毛嫉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜妇菱,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一承粤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闯团,春花似錦辛臊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至涌萤,卻和暖如春淹遵,著一層夾襖步出監(jiān)牢的瞬間口猜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工透揣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留济炎,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓辐真,卻偏偏與公主長得像须尚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子侍咱,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案耐床? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 13,734評論 1 92
  • 一:在制作一個Web應(yīng)用或Web站點的過程中,你是如何考慮他的UI楔脯、安全性撩轰、高性能、SEO昧廷、可維護性以及技術(shù)因素的...
    Arno_z閱讀 1,141評論 0 1
  • 轉(zhuǎn)載請聲明 原文鏈接地址 關(guān)注公眾號獲取更多資訊 第一部分 HTML 第一章 職業(yè)規(guī)劃和前景 職業(yè)方向規(guī)劃定位...
    程序員poetry閱讀 16,524評論 32 459
  • 對于我自己的人生,十年前眉枕,我曾經(jīng)單單純純的認(rèn)為我會相夫教子恶复,我曾天真的以為有錢花、有時間玩速挑,我就會快樂的生活寂玲,生活...
    a404f911dcae閱讀 399評論 0 0
  • ios4.0系統(tǒng)已開始支持block,在編程過程中梗摇,block被Obj-C看成是對象拓哟,它封裝了一段代碼,這段代碼可...
    Asserts閱讀 2,815評論 0 3