2015-07-22 3 views
0

https://jsfiddle.net/nhgy11wx/Правая колонка не получает полную высоту обертки DIV

У меня есть левый столбец плавающего, правый столбец и оболочка для этих двух. У меня есть textarea в правом столбце на авто высота, но я также пробовал 100%, и он не получает полную высоту обертки div. Две кнопки под ним должны быть выровнены по правому краю в нижней части всего, поэтому я помещаю их за пределы основной оболочки, но они также отображаются внутри нее.

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
<title>Settings</title> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script> 
<link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/ui-darkness/jquery-ui.css"> 
<style> 
#wrapper { 
    width: 980px; 
    height: auto; 
} 
#wrapper div { 
    margin-top: 5px; 
    margin-bottom: 5px; 
} 
td { 
    padding-top: 5px; 
    padding-bottom: 5px; 
} 
#ot_col1 { 
    width: 20%; 
} 
#opt_table { 
    width: 100%; 
} 
#ret_table { 
    width: 70%; 
} 
#rt_col1 { 
    width: 70% 
} 
#kv_txt { 
    width: 30%; 
} 
#vs_txt { 
    width: 30%; 
} 
#hp_txt { 
    width: 100%; 
} 
#ws_doc_txt { 
    width: 100%; 
} 
#ws_end_txt { 
    width: 100%; 
} 
#ws_ns_txt { 
    width: 100%; 
} 
#ws_op_txt { 
    width: 50%; 
} 
#ws_par_txt { 
    width: 50%; 
} 
#ws_val_txt { 
    width: 50%; 
} 
#left_col { 
    float: left; 
    width: 480px; 
    padding: 0 0 0 0; 
} 
#right_col { 
    margin: 0 0 0 500px; 
    padding: 0 0 0 0; 
    text-align: left; 
} 
textarea { 
    resize:none; 
    width: 100%; 
    height: 100%; 
} 
#button1 { 
    margin-top: 20px; 
    margin-bottom: 20px; 
} 
.greentxt { 
    color: green; 
} 
.redtxt { 
    color: red; 
} 
.vert_al { 
    vertical-align:bottom; 
} 
#status { 
    font-style:bold; 
} 
</style> 
</head> 

<body> 
<div id="wrapper"> 
<div id="left_col"> 
    <fieldset><legend>Connection pconfiguration</legend> 
    <div> 
     <label> 
     <input type="radio" name="ws_type" value="WSDL" id="ws_type_0">WSDL</label> 
     <label> 
     <input type="radio" name="ws_type" value="NOWSDL" id="ws_type_1">Endpoint</label> 
    </div> 
    <div> 
     <table id="opt_table"> 
      <tr id="ws_doc"> 
       <td><label for="ws_doc">Document:</label></td> 
       <td><input type="text" name="ws_doc" id="ws_doc_txt"> 
      </tr> 
      <tr id="ws_end"> 
       <td><label for="ws_end">Endpoint:</label></td> 
       <td><input type="text" name="ws_end" id="ws_end_txt"> 
      </tr> 
      <tr id="ws_ns"> 
       <td><label for="ws_ns">Namespace:</label></td> 
       <td><input type="text" name="ws_ns" id="ws_ns_txt"></td> 
      </tr> 
      <tr id="ws_op"> 
       <td id="ot_col1"><label for="ws_op">Operation:</label></td> 
       <td><input type="text" name="ws_op" id="ws_op_txt"></td> 
      </tr> 
      <tr id="ws_par"> 
       <td><label for="ws_par">Parameter:</label></td> 
       <td><input type="text" name="ws_par" id="ws_par_txt"></td> 
      </tr> 
      <tr id="ws_val"> 
       <td><label for="ws_val">Value:</label></td> 
       <td><input type="text" name="ws_val" id="ws_val_txt"></td> 
      </tr> 
     </table> 
    </div> 
    </fieldset> 
    <div> 
     <input type="submit" name="test" value="Test" class="vert_al"> 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
    </div> 
    <fieldset><legend>Return type</legend> 
    <div> 
     <label> 
     <input type="radio" name="ret_type" value="STRING" id="ret_type_0">String</label> 
     <label> 
     <input type="radio" name="ret_type" value="LIST" id="ret_type_1">List</label> 
    </div> 
    <div> 
     <table id="ret_table"> 
      <tr id="kv"> 
       <td id="rt_col1"><label for="kv">Key-value pair separator:</label></td> 
       <td><input type="text" name="kv" id="kv_txt"> 
      </tr> 
      <tr id="vs"> 
       <td><label for="vs">Value assignment symbol:</label></td> 
       <td><input type="text" name="vs" id="vs_txt"> 
      </tr> 
      <tr id="hp"> 
       <td><label for="hp">Hash path:</label></td> 
       <td><input type="text" name="hp" id="hp_txt"></td> 
      </tr> 
     </table> 
    </div> 
    </fieldset> 
</div> 

<div id="right_col"><span id="status">Status:</span><span id="err_resp"></span> 
<div id="textarea1"> 
<textarea readonly="readonly" id="response"></textarea> 
</div> 
</div> 
</div> <!--wrapper div--> 
<script> 
$(document).ready(function() { 
    $("*").addClass("ui-corner-all ui-widget"); 
    $("input[type=submit]").button(); 
    $("#ws_type_0").prop('checked','checked'); 
    $("#ret_type_0").prop('checked','checked'); 
    $("#ws_end").hide(); 
    $("#ws_ns").hide(); 
    $("#hp").hide(); 
    $("input[name=ws_type]").on('change', function() { 
     if($(this).val()=="NOWSDL") { 
      $("#ws_end").show(); 
      $("#ws_ns").show(); 
      $("#ws_doc").hide(); 
     } 
     else if($(this).val()=="WSDL") { 
      $("#ws_end").hide(); 
      $("#ws_ns").hide(); 
      $("#ws_doc").show(); 
     } 
    }); 
    $("input[name=ret_type]").on('change', function() { 
     if($(this).val()=="LIST") { 
      $("#kv").hide(); 
      $("#vs").hide(); 
      $("#hp").show(); 
     } 
     else if($(this).val()=="STRING") { 
      $("#kv").show(); 
      $("#vs").show(); 
      $("#hp").hide(); 
     } 
    }); 
    var xmlstr = ""; 
    xmlstr = "<CelsiusToFahrenheitResponse>\n <CelsiusToFahrenheitResult>77</CelsiusToFahrenheitResult>\n</CelsiusToFahrenheitResponse>"; 
    $("#response").text(xmlstr); 
}); 
</script> 
</body> 
</html> 

ответ

1

, когда вы хотите назначить процент width or height (т.е. 100%) на что-либо, то правило заключается в том, что родитель, который должен иметь width/height.

Это означает, что вы html тег, вместе с body тег и все дети должны иметь width/height указано (ли его % или px), так что любой ниже ребенок может иметь height/width с percents.

посмотри на этом примере http://jsfiddle.net/936ud8n5/3/

в этой скрипке, то DIV с идентификатором one невидимо, потому что я дал ему высоту 100%, но его родители (тело и HTML) имеют не указана никакой высоты. Тем не менее, появляется div внутри two, потому что two имеет высоту 100px, поэтому его ребенок div имеет высоту 100%, но он появляется.

также, div являются block элементами уровня, поэтому они автоматически принимают полную ширину родительского контейнера. В этом случае, они всю ширину экрана, что они находятся в так нет необходимости указывать ширину

+0

спасибо за хорошее объяснение –

0

Вы должны добавить JQuery скрипт, чтобы установить высоту правой TEXTAREA коробки

$('#textarea1').css('height',$('#left_col').height()); 

Вы имеете право обновления цв класс недвижимости в CSS:

#right_col { 
    /*margin: 0 0 0 500px;*/ 
    padding: 0 0 0 0; 
    text-align: left; 
    float:left; 
} 
+0

Я сожалею код JQuery не будет работать, так как я скрыл элементы и не правильно выровнять. И код css испортил ширину текстового поля. –

0

Ваш #wrapper высота DIV развалилась, так как вы плавали Div элемент .left_col ребенка и удалить его из потока. Высота обертки теперь распространяется только на нижнюю часть вашего элемента .right_col, заставляя кнопки отображаться непосредственно ниже .right_col. Вы можете обойти это, добавив display:table; в #wrapper или используя clearfix (см. Ниже ниже).

Clearfix:

#wrapper:after { 
    clear: both; 
    content: ""; 
    display: table; 
} 

Отрывок с clearfix.

$("*").addClass("ui-corner-all ui-widget"); 
 
\t $("input[type=submit]").button(); 
 
\t $("#ws_type_0").prop('checked','checked'); 
 
\t $("#ret_type_0").prop('checked','checked'); 
 
\t $("#ws_end").hide(); 
 
\t $("#ws_ns").hide(); 
 
\t $("#hp").hide(); 
 
\t $("input[name=ws_type]").on('change', function() { 
 
\t \t if($(this).val()=="NOWSDL") { 
 
      $("#ws_end").show(); 
 
      $("#ws_ns").show(); 
 
      $("#ws_doc").hide(); 
 
\t \t } 
 
\t \t else if($(this).val()=="WSDL") { 
 
      $("#ws_end").hide(); 
 
      $("#ws_ns").hide(); 
 
      $("#ws_doc").show(); 
 
\t \t } 
 
\t }); 
 
\t $("input[name=ret_type]").on('change', function() { 
 
\t \t if($(this).val()=="LIST") { 
 
      $("#kv").hide(); 
 
      $("#vs").hide(); 
 
\t \t \t $("#hp").show(); 
 
\t \t } 
 
\t \t else if($(this).val()=="STRING") { 
 
      $("#kv").show(); 
 
      $("#vs").show(); 
 
\t \t \t $("#hp").hide(); 
 
\t \t } 
 
\t }); 
 
\t var xmlstr = ""; 
 
\t xmlstr = "<CelsiusToFahrenheitResponse>\n <CelsiusToFahrenheitResult>77</CelsiusToFahrenheitResult>\n</CelsiusToFahrenheitResponse>"; 
 
\t $("#response").text(xmlstr);
#wrapper { 
 
\t width: 980px; 
 
\t height: auto; 
 
    /* You can use this too - display:table; */ 
 
} 
 

 
/* Clearfix */ 
 
#wrapper:after { 
 
    clear: both; 
 
    content: ""; 
 
    display: table; 
 
} 
 
#wrapper div { 
 
\t margin-top: 5px; 
 
\t margin-bottom: 5px; 
 
} 
 
#bottom { 
 
    text-align: right; 
 
} 
 
td { 
 
\t padding-top: 5px; 
 
\t padding-bottom: 5px; 
 
} 
 
#ot_col1 { 
 
\t width: 20%; 
 
} 
 
#opt_table { 
 
\t width: 100%; 
 
} 
 
#ret_table { 
 
\t width: 70%; 
 
} 
 
#rt_col1 { 
 
\t width: 70% 
 
} 
 
#kv_txt { 
 
\t width: 30%; 
 
} 
 
#vs_txt { 
 
\t width: 30%; 
 
} 
 
#hp_txt { 
 
\t width: 100%; 
 
} 
 
#ws_doc_txt { 
 
\t width: 100%; 
 
} 
 
#ws_end_txt { 
 
\t width: 100%; 
 
} 
 
#ws_ns_txt { 
 
\t width: 100%; 
 
} 
 
#ws_op_txt { 
 
\t width: 50%; 
 
} 
 
#ws_par_txt { 
 
\t width: 50%; 
 
} 
 
#ws_val_txt { 
 
\t width: 50%; 
 
} 
 
#left_col { 
 
\t float: left; 
 
\t width: 480px; 
 
\t padding: 0 0 0 0; 
 
} 
 
#right_col { 
 
\t margin: 0 0 0 500px; 
 
\t padding: 0 0 0 0; 
 
\t text-align: left; 
 
} 
 
textarea { 
 
\t resize:none; 
 
\t width: 100%; 
 
\t height: 100%; 
 
} 
 
#button1 { 
 
\t margin-top: 20px; 
 
\t margin-bottom: 20px; 
 
} 
 
.greentxt { 
 
\t color: green; 
 
} 
 
.redtxt { 
 
\t color: red; 
 
} 
 
.vert_al { 
 
\t vertical-align:bottom; 
 
} 
 
#status { 
 
\t font-style:bold; 
 
}
<title>Settings</title> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script> 
 
<body> 
 
<div id="wrapper"> 
 
<div id="left_col"> 
 
\t <fieldset><legend>Connection pconfiguration</legend> 
 
\t <div> 
 
\t \t <label> 
 
\t \t <input type="radio" name="ws_type" value="WSDL" id="ws_type_0">WSDL</label> 
 
\t \t <label> 
 
\t \t <input type="radio" name="ws_type" value="NOWSDL" id="ws_type_1">Endpoint</label> 
 
\t </div> 
 
    <div> 
 
     <table id="opt_table"> 
 
      <tr id="ws_doc"> 
 
       <td><label for="ws_doc">Document:</label></td> 
 
       <td><input type="text" name="ws_doc" id="ws_doc_txt"> 
 
      </tr> 
 
      <tr id="ws_end"> 
 
       <td><label for="ws_end">Endpoint:</label></td> 
 
       <td><input type="text" name="ws_end" id="ws_end_txt"> 
 
      </tr> 
 
      <tr id="ws_ns"> 
 
       <td><label for="ws_ns">Namespace:</label></td> 
 
       <td><input type="text" name="ws_ns" id="ws_ns_txt"></td> 
 
      </tr> 
 
      <tr id="ws_op"> 
 
       <td id="ot_col1"><label for="ws_op">Operation:</label></td> 
 
       <td><input type="text" name="ws_op" id="ws_op_txt"></td> 
 
      </tr> 
 
      <tr id="ws_par"> 
 
       <td><label for="ws_par">Parameter:</label></td> 
 
       <td><input type="text" name="ws_par" id="ws_par_txt"></td> 
 
      </tr> 
 
      <tr id="ws_val"> 
 
       <td><label for="ws_val">Value:</label></td> 
 
       <td><input type="text" name="ws_val" id="ws_val_txt"></td> 
 
      </tr> 
 
     </table> 
 
\t </div> 
 
    </fieldset> 
 
\t <div> 
 
     <input type="submit" name="test" value="Test" class="vert_al"> 
 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
 
     <img class="vert_al" src="../Desktop/arrow_anim_left.gif" width="48" height="36" alt=""/> 
 
    </div> 
 
    <fieldset><legend>Return type</legend> 
 
\t <div> 
 
\t \t <label> 
 
\t \t <input type="radio" name="ret_type" value="STRING" id="ret_type_0">String</label> 
 
\t \t <label> 
 
\t \t <input type="radio" name="ret_type" value="LIST" id="ret_type_1">List</label> 
 
\t </div> 
 
    <div> 
 
     <table id="ret_table"> 
 
      <tr id="kv"> 
 
       <td id="rt_col1"><label for="kv">Key-value pair separator:</label></td> 
 
       <td><input type="text" name="kv" id="kv_txt"> 
 
      </tr> 
 
      <tr id="vs"> 
 
       <td><label for="vs">Value assignment symbol:</label></td> 
 
       <td><input type="text" name="vs" id="vs_txt"> 
 
      </tr> 
 
      <tr id="hp"> 
 
       <td><label for="hp">Hash path:</label></td> 
 
       <td><input type="text" name="hp" id="hp_txt"></td> 
 
      </tr> 
 
     </table> 
 
\t </div> 
 
    </fieldset> 
 
</div> 
 

 
<div id="right_col"><span id="status">Status:</span><span id="err_resp"></span> 
 
<div id="textarea1"> 
 
<textarea readonly="readonly" id="response"></textarea> 
 
</div> <!--textarea--> 
 
</div> <!--right column--> 
 
</div> <!--wrapper div--> 
 
    <div id="bottom"> 
 
<input type="submit" name="Save" value="Save&Close"><input type="submit" name="Cancel" value="Cancel"> 
 
    </div>

+0

добавление любой из этих исправлений css ничего не фиксирует, проверяется как в Dreamweaver, так и внутри фрагмента. textarea по-прежнему не такой же высоты, как и левый столбец, а нижние правые кнопки - повсюду. –

+0

Тогда вам также нужно будет указать высоту родительского элемента, как утверждает Абдул Ахмад в своем ответе. – IMI

Смежные вопросы