2015-09-06 72 views
1

我有一个HTML页面,我有一个文本框(键入您的文本)和TextArea列表。我需要输入到文本框中,然后单击添加按钮,以便文本框中的任何内容都会发送到我的TextArea列表中。我需要在文本框中输入以下格式。如何使UI更适合其他屏幕尺寸?

Name=Value 

该文本框将被用户用来快速添加名称值对这些仅仅是文本框下面的列表中。我们如果我们在上面的文本框中键入Hello=World,然后单击添加,然后在下面的列表中,应该显示为

Hello=World 

如果我们再次在同一文本框中键入ABC=PQR,然后在下面的列表中说,它应该如此显示,这意味着它应该在原始条目下面添加新的名称值对。

Hello=World 
ABC=PQR 

但如果语法不正确一样,如果它是不是在名称=值对,那么它应该不添加任何东西到列表,而是显示一个弹出那错的输入格式。名称和值只能包含字母数字字符。我还有三个按钮Sort by name,Sort by valueDelete按钮。一旦我点击了其中任何一个按钮,它就应该使用名称或值对TextArea列表中的条目进行排序,并删除条目。现在我有以上所有的东西没有任何问题工作正常。

这是我的jsfiddle。我需要使用普通的HTML,CSS和Javascript,我不想使用任何库,因为我想保持简单,因为我仍然在学习。现在我正在尝试查看是否可以使UI更具响应性,例如UI应根据屏幕大小查看它进行调整。例如,如果在移动电话(即Android或iPhone)上查看,该页面应自动调整以更好地呈现布局。这也适用于在桌面上重新调整浏览器的大小,以及在平板电脑上查看页面。

我需要在CSS或HTML中进行哪些更改以使其更具响应性?我可以在这里做任何改进?由于我的用户界面非常简单,所以应该有一些简单的方法或我可以在此处做出的一些改进。

下面是我的代码:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Test</title> 

<style type="text/css"> 
.main{ 
    background:white; 
    padding: 35px; 
    border-radius: 5px; 
} 

#my-text-box { 
    font-size: 18px; 
    height: 1.5em; 
    width: 585px; 
} 
#list{ 
    width:585px; 
    height:300px; 
    font-size: 18px; 
} 
.form-section{ 
    overflow:hidden; 
    width:700px; 
} 
.fleft{float:left} 
.fright{float:left; padding-left:15px;} 
.fright button{display:block; margin-bottom:10px;} 

html, body { 
    height: 100%; 
    font-family: "Calibri"; 
    font-size: 20px; 
} 

html { 
    display: table; 
    margin: auto; 
} 

body { 
    display: table-cell; 
    vertical-align: middle; 
    background-color: #5C87B2; 
} 
</style> 

<script language="javascript" type="text/javascript"> 
document.getElementById('add').onclick = addtext; 
function addtext() { 
    var nameValue = document.getElementById('my-text-box').value; 
     if (/^([a-zA-Z0-9]+=[a-zA-Z0-9]+)$/.test(nameValue)){ 
     var x = document.getElementById("list"); 

     var option = document.createElement("option"); 
     option.text = nameValue; 
     x.add(option); 
    } 
    else 
     alert('Incorrect Name Value pair format.'); 
} 
document.getElementById('btnDelete').onclick = deleteText; 
function deleteText(){ 
    var myList = document.getElementById('list'); 
    var i; 
    for (i = myList.length - 1; i>=0; i--) { 
    if (myList.options[i].selected) { 
     myList.remove(i); 
    } 
    } 
} 

document.getElementById('sortByValue').onclick = sortByValue; 
function sortByValue(){ 
    var myList = document.getElementById('list'); 
    var values = new Array(); 
    for (var i=0;i<myList.options.length;i++) { 
     values[i] = myList.options[i].text; 
    } 
     values.sort(function(a, b){ 
      if(a != "" && b != ""){ 
       return a.split('=')[1].localeCompare(b.split('=')[1]) 
      } else { 
       return 0 
      } 
     }); 

    clearList(myList); 
    fillList(myList, values); 
} 
document.getElementById('sortByName').onclick = sortByName; 
function sortByName(){ 
    var myList = document.getElementById('list'); 
    var values = new Array(); 
    for (var i=0;i<myList.options.length;i++) { 
     values[i] = myList.options[i].text; 
    } 
     values.sort(function (a, b){ 
      if(a != "" && b != ""){ 
       return a.split('=')[0].localeCompare(b.split('=')[0]) 
      } else { 
       return 0 
      } 
     }); 

    clearList(myList); 

    fillList(myList, values); 
} 

function clearList(list) { 
    while (list.options.length > 0) { 
     list.options[0] = null; 
    } 
} 

function fillList(myList, values){ 
    for (var i=0;i<values.length;i++) { 
     var option = document.createElement("option"); 
     option.text = values[i]; 
     myList.options[i] = option; 
    } 
} 
</script> 

</head> 

<body> 
<div class = 'main'> 
    <h3>Test</h3> 

    <label for="pair">Type your text</label></br> 
    <div class="form-section"> 
     <div class="fleft"> 
      <input type='text' id='my-text-box' value="Name=Value" /> 
     </div> 
     <div class="fright"> 
      <button type="button" id='add' onclick='addtext()'>Add</button> 
     </div> 
    </div> 
    <label for="pairs">Name/Value Pair List</label></br> 
    <div class="form-section"> 
     <div class="fleft"> 
      <select id="list" multiple></select> 
     </div> 
     <div class="fright"> 
      <button type="button" id='sortByName' onclick='sortByName()'>Sort by name</button> 
      <button type="button" id='sortByValue' onclick='sortByValue()'>Sort by value</button> 
      <button type="button" id='btnDelete' onclick='deleteText()'>Delete</button> 
      <button type="button">Show XML</button> 
     </div> 
    </div> 
</div> 

</body> 
</html> 
+0

你能否从源头上删除'
',因为我发现当那些人在那里时很难专注于其他问题。管视角。 –

+0

完成,从源头删除所有'
'。 – user1950349

回答

0

W3拥有一批在响应网页设计资源:

http://www.w3schools.com/html/html_responsive.asp ​​

不使用PHP来检测浏览器/用户代理,你的响应式设计通常会涉及确保网站更加流畅和流畅,允许更改浏览器宽度(如上面第一个示例中所述)和/或通过提供不同的样式表取决于在CSS中的视口尺寸和媒体类型(第二个例子)。