UI設計實戰篇——利用Bootstrap框架製作查詢頁面的介面

萬倉一黍發表於2013-11-07

Bootstrap框架是一個前端UI設計的框架,它提供了統一的UI介面,簡化了設計介面UI的過程(缺點是定製了介面,調整的餘地不是太大)。尤其是現在的響應時佈局(我的理解是頁面根據不同的解析度,採用不同的頁面元素的佈局),在Bootstrap中很好的支援了,只要簡單設定了屬性,就能自動實現響應時佈局,大大簡化了程式設計師的介面的過程。

 

因此,本人用Bootstrap框架實現瞭如下的介面,雖然簡單,但也不凡(真要自己實現的話,不知要猴年馬月了)

1

 

 

整個頁面分為幾個部分,分別用Bootstrap官網上的示例程式碼實現,最終拼成一個頁面。各部分示意如下圖所示

 

2

 

接下來依次講解各個部分的程式碼

 

首先,構造空白頁面,程式碼如下:

 

<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta name="description" content="">
        <meta name="author" content="">
    
        <title>職業技能考證分數查詢(Bootstrap)</title>

        <link rel="stylesheet" href="http://cdn.bootcss.com/twitter-bootstrap/3.0.1/css/bootstrap.min.css">
        <link rel="stylesheet" href="http://cdn.bootcss.com/twitter-bootstrap/3.0.1/css/bootstrap-theme.min.css">

        <!--[if lt IE 9]><script src="../../docs-assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
        <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
        <![endif]-->
    
        <style>
            .bs-docs-home
            {
            background-color: #1B31B1;
            background-image: url(line.png);
            }
    </style>
</head>

<body class="bs-docs-home"> 

    <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script src="http://cdn.bootcss.com/twitter-bootstrap/3.0.1/js/bootstrap.min.js"></script>
</body>
</html>

 

要想使用Bootstrap框架,就要在頁面中引用Bootstrap框架檔案。一共四個:bootstrap.min.css、bootstrap-theme.min.css、jquery-1.10.2.min.js、bootstrap.min.js

只有引用了這些檔案,接下來才可以使用Bootstrap框架提供的各種UI元素

接下來按照上圖依次說明各個部分的程式碼

 

 

頂部說明文字:

 

設計整個頁面的思路是整個頁面放在一個皮膚(Panel)上,頂部的說明的文字就是皮膚頭(Panel Head)

而Bootstrap框架的頁面是一個12列的網格佈局。因此,我把整個頁面分成三部分。左右各3列寬的空白,中間6列寬放一個皮膚(Panel)。

程式碼如下:剩下部分的程式碼都依次在<div class="panel-body"> </div>

 

<body class="bs-docs-home">
    <div class="container theme-showcase">
        <h1 style=" line-height:2em;"> </h1><br />
      
        <div class="row">
            <div class="col-sm-3"></div>

            <div class="col-sm-6">
                <div class="panel panel-primary">
                    <div class="panel-heading">
                        <h3 class="panel-title"><strong>職業技能考證分數查詢</strong></h3>
                    </div>
                    <div class="panel-body"> 

                    </div> 
                </div> 
            </div> 
      
            <div class="col-sm-3"></div> 
        </div>
    </div> 
    <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script src="http://cdn.bootcss.com/twitter-bootstrap/3.0.1/js/bootstrap.min.js"></script>
</body>

 

 

提示文字

提示文字用的是Bootstrap框架中的提示(alert)元件,程式碼如下:

 

  <div class="alert alert-danger alert-dismissable"> 
      <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> 
      <strong>注意!</strong> 本站查詢的分數來源於12333官網,詳情請到官網諮詢
  </div> 
 

 

身份證表單和查詢按鈕

身份證表單和後面的科目表單都應該在一個表單中。身份證表單和查詢按鈕是利用Bootstrap框架的表單元素組。利用input group把文字框(input)和按鈕(button)組合在一起。而Bootstrap框架提供了諸如水印、高亮等效果。為表單增色不少

 

    <form role="form" name="form1"> 

        <div class="form-group"> 
            <label for="IDCard">請輸入您的身份證號碼</label> 
            <div class="input-group"> 
                <input type="text" class="form-control" id="IDCard" name="IDCard" placeholder="身份證號碼" > 
                <span class="input-group-btn"> 
                    <button class="btn btn-default" type="button" onClick="form1.submit();" >查詢</button> 
                </span> 
            </div> 
        </div> 
      
    </form> 
           

科目表單

科目表單也是利用Bootstrap框架的表單元素組。利用input group把文字框(input)和按鈕(button)和下拉選單(ul)組合在一起。

可以在文字框裡直接輸入科目,也可以在下拉選單中選擇科目。具體的實現是在超連結(a)的點選事件(click)中用$('#Subject').val('計算機操作員')等程式碼來改變文字框中的內容。科目表單位置在身份證表單的下方,在表單(form)裡面

 

程式碼如下:

         
     <div class="form-group"> 
         <label for="Subject">請輸入您要查詢的科目</label> 
         <div class="input-group"> 
             <input type="text" class="form-control" id="Subject" name="Subject" placeholder="科目,空白科目意味著查詢所有的科目" > 
             <div class="input-group-btn"> 
                 <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">科目 <span class="caret"></span></button> 
                 <ul class="dropdown-menu pull-right"> 
                     <li><a href="#" onClick="$('#Subject').val('計算機操作員');">計算機操作員</a></li> 
                     <li><a href="#" onClick="$('#Subject').val('網頁設計');">網頁設計</a></li> 
                     <li><a href="#" onClick="$('#Subject').val('多媒體');">多媒體</a></li> 
                 </ul> 
             </div> 
         </div> 
     </div> 
      

查詢錯誤資訊

當點選查詢按鈕時,沒有查到記錄的時候,則顯示該查詢錯誤資訊。和之前的提示文字一樣,用的是Bootstrap框架中的提示(alert)元件。

這個資訊是否顯示,還需要後臺動態程式碼的配合,動態程式碼根據查詢的結果來決定是否顯示該資訊(沒有記錄,則顯示該資訊)。動態程式碼不在這篇文章裡討論。

位置在表單(form)的後面,程式碼如下:

            
    <div class="alert alert-danger alert-dismissable"> 
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> 
        <strong>注意!</strong> 沒有查到成績,請檢查身份證號碼和科目後,再次查詢 
   </div>  
            

成績表格

當點選查詢按鈕時,查到記錄的時候,則顯示成績表格。同樣,是否顯示也需要後臺的動態程式碼的配合。

查詢錯誤資訊和成績表格同時只能出現一個

程式碼如下:

 

    <div class="table-responsive"> 
        <table  border="0" cellspacing="0" cellpadding="0" class="table"> 
            <tr class=" label-primary"> 
                <th scope="col" width="50%" ><span style="color:white">科目</span></th> 
                <th scope="col"><span style="color:white">成績</span></th> 
            </tr> 
            <tr class="active"> 
                <td>計算機操作員</td> 
                <td>沒有成績</td> 
            </tr> 
            <tr class="success"> 
                <td>計算機操作員</td> 
                <td>優秀</td> 
            </tr> 
            <tr class="active"> 
                <td>多媒體操作員</td> 
                <td>良好</td> 
            </tr> 
            <tr class="success"> 
                <td>網頁設計</td> 
                <td>不及格</td> 
            </tr>  
        </table> 
    </div>          
   

 

這個頁面是利用Bootstrap框架來實現的,得益於Bootstrap框架的強大,使得設計UI不再成為一件難事。但Bootstrap僅僅是UI框架,它的出彩還得依靠後臺的動態程式碼的配合。

下面這個網址,就是筆者用上面的介面加上後臺動態程式碼(PHP)來實現職業技能考試分數(僅限於上海)的查詢的功能。大家可以去看看,並提出寶貴的意見(有效期1個月)。

http://bertin.sturgeon.mopaas.com/

image

 

 

 

完整的UI程式碼如下:

 

<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta name="description" content="">
        <meta name="author" content="">
    
        <title>職業技能考證分數查詢(Bootstrap)</title>

        <link rel="stylesheet" href="http://cdn.bootcss.com/twitter-bootstrap/3.0.1/css/bootstrap.min.css">
        <link rel="stylesheet" href="http://cdn.bootcss.com/twitter-bootstrap/3.0.1/css/bootstrap-theme.min.css">

        <!--[if lt IE 9]><script src="../../docs-assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
        <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
        <![endif]-->
    
        <style>
            .bs-docs-home
            {
            background-color: #1B31B1;
            background-image: url(line.png);
            }
    </style>
</head>

<body class="bs-docs-home">
    <div class="container theme-showcase">
        <h1 style=" line-height:2em;"> </h1><br />
      
        <div class="row">
            <div class="col-sm-3"></div>
        <div class="col-sm-6">
            <div class="panel panel-primary">
                <div class="panel-heading">
                    <h3 class="panel-title"><strong>職業技能考證分數查詢</strong></h3>
                </div>
                <div class="panel-body">
                   <div class="alert alert-danger alert-dismissable">
                       <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
                       <strong>注意!</strong> 本站查詢的分數來源於12333官網,詳情請到官網諮詢</div>
              
                       <form role="form" name="form1">

                           <div class="form-group">
                               <label for="IDCard">請輸入您的身份證號碼</label>
                               <div class="input-group">
                                   <input type="text" class="form-control" id="IDCard" name="IDCard" placeholder="身份證號碼" >
                                   <span class="input-group-btn">
                                       <button class="btn btn-default" type="button" onClick="form1.submit();" >查詢</button>
                                   </span>
                               </div>
                           </div>
        
                           <div class="form-group">
                               <label for="Subject">請輸入您要查詢的科目</label>
                               <div class="input-group">
                                   <input type="text" class="form-control" id="Subject" name="Subject" placeholder="科目,空白科目意味著查詢所有的科目" >
                                   <div class="input-group-btn">
                                       <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">科目 <span class="caret"></span></button>
                                       <ul class="dropdown-menu pull-right">
                                           <li><a href="#" onClick="$('#Subject').val('計算機操作員');">計算機操作員</a></li>
                                           <li><a href="#" onClick="$('#Subject').val('網頁設計');">網頁設計</a></li>
                                           <li><a href="#" onClick="$('#Subject').val('多媒體');">多媒體</a></li>
                                       </ul>
                                   </div>
                               </div>
                           </div>
      
                       </form>
           
                       <div class="alert alert-danger alert-dismissable">
                           <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
                           <strong>注意!</strong> 沒有查到成績,請檢查身份證號碼和科目後,再次查詢
                       </div> 
            
                       <div class="table-responsive">
                           <table  border="0" cellspacing="0" cellpadding="0" class="table">
                               <tr class=" label-primary">
                                   <th scope="col" width="50%" ><span style="color:white">科目</span></th>
                                   <th scope="col"><span style="color:white">成績</span></th>
                               </tr>
                               <tr class="active">
                                   <td width="50%">計算機操作員</td>
                                   <td>沒有成績</td>
                               </tr>
                               <tr class="success">
                                   <td>計算機操作員</td>
                                   <td>優秀</td>
                               </tr>
                               <tr class="active">
                                   <td>多媒體操作員</td>
                                   <td>良好</td>
                               </tr>
                               <tr class="success">
                                   <td>網頁設計</td>
                                   <td>不及格</td>
                               </tr> 
                           </table>
                       </div>         
                   </div>
               </div>
           </div>
     
           <div class="col-sm-3"></div>
        </div>
    </div> 
    <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script src="http://cdn.bootcss.com/twitter-bootstrap/3.0.1/js/bootstrap.min.js"></script>
</body>
</html>

 

相關文章