2017-10-09 2 views
3

私はASP.NETを初めて使い、現在ASP.NET Core 2.0を使用しています。小さな画面で別のものの背後に隠れているブートストラップ行

私がしようとしているのは、2つのcol-md-6を含む行を表示し、col-md-12を含むもう1つの行です。

「通常の」ラップトップ画面では完全に機能しますが、応答性をテストするために画面サイズを小さくすると、2番目の行が最初の行の後ろに表示されます。

ノートパソコンの画面:

Laptop screen

小画面:ここ

Small screen

CSS:

body { 
padding-top: 50px; 
padding-bottom: 20px; 
} 

/* Wrapping element */ 
/* Set some basic padding to keep content from hitting the edges */ 
.body-content { 
padding-left: 15px; 
padding-right: 15px; 
} 

/* Custom changes */ 
body {background-color:grey;} 

.form { 
background-color: green; 
height: 66vh; 
} 

.form form { 
height: 100%; 
} 

#inputs { 
height: 90%; 
width: 100%; 
margin: 0; 
padding: 0; 
} 

.col-md-6 { 
padding-top: 2%; 
padding-bottom: 3%; 
text-align: center; 
background-color:orange; 
height: 100%; 
} 

.textbox { 
width: 66%; 
height: 90%; 
background-color: red; 
resize: none; 
} 

#submit { 
text-align: center; 
background-color: pink; 
height: 48px; 
padding: 0; 
margin: 0; 
} 

.errors { 
background-color: aqua; 
} 

そしてHTML:

@page 
@model IndexModel 
@{ 
ViewData["Title"] = "Home page"; 
} 

@{ 
string message = ""; 
string phones = ""; 
int error_nb = 0; 
int error_line = 0; 

if (Request.Method == "POST") 
{ 
    message = Request.Form["message"]; 
    phones = Request.Form["phones"]; 
    } 
} 



<div class="form"> 
<form method="post"> 
    <div class="row" id="inputs"> 
     <div class="col-md-6"> 
      Message:<br /> 
      <textarea type="text" name="message" class="textbox">@message</textarea> 
     </div> 
     <div class="col-md-6"> 
      Phones:<br /> 
      <textarea type="text" name="phones" class="textbox">@phones</textarea> 
     </div> 
    </div> 
    <div class="row" id="submit"> 
     <div class="col-md-12"> 
      <input type="submit" name="submit" class="btn btn-lg btn-success" /> 
     </div> 
    </div> 
</form> 
</div> 
<div class="errors"> 
<textarea>@error_nb error(s) detected at line @error_line !</textarea> 
</div> 

これを解決する方法はありますか? ありがとう!

EDITは:ここ_Layout.cshtmlはあなたのグリッドにrow-fluidを使用していたときにそれは完璧に働いて

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8" /> 
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
<title>@ViewData["Title"] - WebApplication6</title> 

<environment include="Development"> 
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" /> 
    <link rel="stylesheet" href="~/css/site.css" /> 
</environment> 
<environment exclude="Development"> 
    <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css" 
      asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css" 
      asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" /> 
    <link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" /> 
</environment> 
</head> 
<body> 

<div class="container body-content"> 
    @RenderBody() 
</div> 

<environment include="Development"> 
    <script src="~/lib/jquery/dist/jquery.js"></script> 
    <script src="~/lib/bootstrap/dist/js/bootstrap.js"></script> 
    <script src="~/js/site.js" asp-append-version="true"></script> 
</environment> 
<environment exclude="Development"> 
    <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.2.0.min.js" 
      asp-fallback-src="~/lib/jquery/dist/jquery.min.js" 
      asp-fallback-test="window.jQuery" 
      crossorigin="anonymous" 
      integrity="sha384-K+ctZQ+LL8q6tP7I94W+qzQsfRV2a+AfHIi9k8z8l9ggpc8X+Ytst4yBo/hH+8Fk"> 
    </script> 
    <script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/bootstrap.min.js" 
      asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js" 
      asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal" 
      crossorigin="anonymous" 
      integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"> 
    </script> 
    <script src="~/js/site.min.js" asp-append-version="true"></script> 
</environment> 

@RenderSection("Scripts", required: false) 
</body> 
</html> 
+0

'.row' CSSに 'width/margin'プロパティを明示的に指定する必要はありません。また、行divにclearfixクラスを追加してください –

+0

@SuperUserこのクイック回答ありがとう!なぜマージンと幅を0に設定しないでください。とにかく、私はそれをしましたが、私の主な問題は残っています – Swurderer

+0

それはコンテナの中ですか? – Salketer

答えて

1

ファイルであり、その優れた応答性のケースにrow-fluidを使用することを示唆しました。

Ref link.

と応答性の問題については、私はあなたのためにこのコードを追加した -

@media only screen and (max-width: 767px) { 
    #inputs { 
    height: auto; 
    width: auto; 
    margin: 0; 
    padding: 0; 
    } 

} 

body { 
 
    padding-top: 50px; 
 
    padding-bottom: 20px; 
 
} 
 

 

 
/* Wrapping element */ 
 

 

 
/* Set some basic padding to keep content from hitting the edges */ 
 

 
.body-content { 
 
    padding-left: 15px; 
 
    padding-right: 15px; 
 
} 
 

 

 
/* Custom changes */ 
 

 
body { 
 
    background-color: grey; 
 
} 
 

 
.form { 
 
    background-color: green; 
 
    height: 66vh; 
 
} 
 

 
.form form { 
 
    height: 100%; 
 
} 
 

 
#inputs { 
 
    height: 90%; 
 
    width: 100%; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 

 
.col-md-6 { 
 
    padding-top: 2%; 
 
    padding-bottom: 3%; 
 
    text-align: center; 
 
    background-color: orange; 
 
    height: 100%; 
 
} 
 

 
.textbox { 
 
    width: 66%; 
 
    height: 90%; 
 
    background-color: red; 
 
    resize: none; 
 
} 
 

 
#submit { 
 
    text-align: center; 
 
    background-color: pink; 
 
    height: 48px; 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 

 
.errors { 
 
    background-color: aqua; 
 
} 
 

 
@media only screen and (max-width: 767px) { 
 
    #inputs { 
 
    height: auto; 
 
    width: auto; 
 
    margin: 0; 
 
    padding: 0; 
 
    } 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 

 
<div class="form"> 
 
    <form method="post"> 
 
    <div class="row-fluid" id="inputs"> 
 
     <div class="col-md-6"> 
 
     Message:<br /> 
 
     <textarea type="text" name="message" class="textbox">@message</textarea> 
 
     </div> 
 
     <div class="col-md-6"> 
 
     Phones:<br /> 
 
     <textarea type="text" name="phones" class="textbox">@phones</textarea> 
 
     </div> 
 
    </div> 
 
    <div class="row-fluid" id="submit"> 
 
     <div class="col-md-12"> 
 
     <input type="submit" name="submit" class="btn btn-lg btn-success" /> 
 
     </div> 
 
    </div> 
 
    </form> 
 
</div>

+0

さて、ありがとう、私の側で最初はうまくいきませんでしたが、いくつかの編集の後、それは魅力のように動作します! – Swurderer

3

問題は下画面の解像度で、あなたが持っているということですno set column ...ここでは少なくともcol-xs- *を定義する必要があります。col-xs-12を追加すると動作します。

CSS here: body { 
 
    padding-top: 50px; 
 
    padding-bottom: 20px; 
 
} 
 

 

 
/* Wrapping element */ 
 

 

 
/* Set some basic padding to keep content from hitting the edges */ 
 

 
.body-content { 
 
    padding-left: 15px; 
 
    padding-right: 15px; 
 
} 
 

 

 
/* Custom changes */ 
 

 
body { 
 
    background-color: grey; 
 
} 
 

 
.form { 
 
    background-color: green; 
 
    height: 66vh; 
 
} 
 

 
.form form { 
 
    height: 100%; 
 
} 
 

 
#inputs { 
 
    height: 90%; 
 
    width: 100%; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 

 
.col-md-6 { 
 
    padding-top: 2%; 
 
    padding-bottom: 3%; 
 
    text-align: center; 
 
    background-color: orange; 
 
    height: 100%; 
 
} 
 

 
.textbox { 
 
    width: 66%; 
 
    height: 90%; 
 
    background-color: red; 
 
    resize: none; 
 
} 
 

 
#submit { 
 
    text-align: center; 
 
    background-color: pink; 
 
    height: 48px; 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 

 
.errors { 
 
    background-color: aqua; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
<div class="form container"> 
 
    <form method="post"> 
 
    <div class="row" id="inputs"> 
 
     <div class="col-md-6 col-xs-12"> 
 
     Message:<br /> 
 
     <textarea type="text" name="message" class="textbox">@message</textarea> 
 
     </div> 
 
     <div class="col-md-6 col-xs-12"> 
 
     Phones:<br /> 
 
     <textarea type="text" name="phones" class="textbox">@phones</textarea> 
 
     </div> 
 
    </div> 
 
    <div class="row" id="submit"> 
 
     <div class="col-xs-12"> 
 
     <input type="submit" name="submit" class="btn btn-lg btn-success" /> 
 
     </div> 
 
    </div> 
 
    </form> 
 
</div> 
 
<div class="errors"> 
 
    <textarea>@error_nb error(s) detected at line @error_line !</textarea> 
 
</div>

残念ながら、これはドキュメントに正しく文書化されていませんが、XS値なしの列を持つことは、予期しない結果になります。あなたのケースでは、CSSルールfloat:leftが欠落しています。これは、col-xs- *のみが適用されるためです。

+0

Mh、私はあなたの答えの両方を試みました、そして、私のために働かなかった。私は本当にここで理解していません – Swurderer

+0

私のコードスニペットが動作し、それはあなたのCSSとHTMLを使用します...多分あなたのページに干渉するより多くのコードがありますか?そして私は答えを1つだけ与えたのですか? – Salketer

+0

私はあなたの答えとウェーバーのことを意味しました 追加コードがあるかどうかを確認します – Swurderer

関連する問題