【问题标题】:Making a well formated responsive form with Boostrap使用 Bootstrap 制作格式良好的响应式表单
【发布时间】:2019-04-16 22:03:41
【问题描述】:

总的来说,我对 CSS 还很陌生,所以请多多包涵。我正在尝试使用 ASP.Net MVC(使用 Razor)制作一个如下所示的表单:

这个旧表单是过去制作的,带有许多 table、tr、td、p 和 br 标签,宽度固定,所以最终结果完全符合预期,但仅适用于特定尺寸的屏幕。除了超过 1024x768 的屏幕之外,最终结果是非常糟糕的,因为用户必须在垂直和水平方向上进行大量滚动。

我想做的是在大屏幕上复制这种视觉效果,但以一种响应式的方式,这意味着它会在平板电脑或手机上以不同的方式排列。我正在使用带有 MVC 5 和引导 css 的 ASP.net。但是,我在复制布局时遇到了问题(标签在上面,控件在下面)。

所以我的问题是:这是一个粗略的 html(使用引导 css)。任何人都可以推荐一个关于bootstrap和css的好教程吗?我知道有很多,但哪一个是真正的商品?

谢谢,

【问题讨论】:

    标签: html css asp.net-mvc twitter-bootstrap


    【解决方案1】:

    引导类是要走的路。文档已经足够好了,真的。它非常容易上手,而且非常容易编写。您在 Bootstrap 4 类中的示例:

    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.css" rel="stylesheet"/>
    
    <div class="d-flex flex-column">
    	<div class="w-50 d-flex flex-column pb-1">
    		<label class="font-italic" for="reference">Reference</label>
    		<span class="text-black-50">Votre numero de contrat ou le nom de famille</span>
    		<input class="" id="reference" type="text" />
    	</div>
    	<div class="w-50 d-flex flex-column pb-1">
    		<label class="font-italic" for="enterprise">Enterprise *</label>
    		<input class="" id="enterprise" type="text" />
    	</div>
    	<div class="d-flex flex-row pb-1">
    		<div class="w-50 d-flex flex-column">
    			<label class="font-italic" for="address1">Adresse *</label>
    			<input class="" id="address1" type="text" />
    		</div>
    		<div class="w-50 w-50 d-flex flex-column">
    			<label class="font-italic" for="address2">Adresse</label>
    			<input class="" id="address2" type="text" />
    		</div>
    	</div>
    </div>

    这里包含的类以后可能会占您代码的一半以上。我广泛使用了d-flex 类,将它变成了一个弹性盒子。 pb-1 表示底部填充,1 rem,w-50 表示宽度 50%。唯一的问题是flex-row 将子元素划分为单独的列,而 flex-column 将其划分为行。

    享受使用 Bootstrap,它真的很棒。

    【讨论】:

    • 你有我的支持,因为很少有人阅读与 Bootstrap 相关的问题...
    • 谢谢。我对 Bootstrap 中已经存在的我可能需要的东西感到惊讶。对于其他阅读者,您可以将上面的 flex 类与下面显示的 @D.Smania 示例中的类结合起来,以创建具有设置列大小的 flex 布局。
    【解决方案2】:

    或者(也)使用 Bootstrap,您可以使用 grid system,它基于 rowcol-* 类。检查下一个示例:

    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
    
    <div class="container-fluid">
    
      <div class="row">
        <div class="col-6">
          <label class="font-italic" for="reference">
            Référence
            <br>
            <small class="text-muted">Votre número de contrat ou le nom de famille</small>
          </label>          
          <input class="form-control" id="reference" type="text"/>
        </div>
      </div>
      
      <div class="row">  
        <div class="col-6">
          <label class="font-italic" for="enterprise">Enterprise *</label>
          <input class="form-control" id="enterprise" type="text"/>
        </div>
      </div>
    
      <div class="row">        
        <div class="col-6">
          <label class="font-italic" for="address1">Adresse *</label>
          <input class="form-control" id="address1" type="text" />
        </div>        
        <div class="col-6">
          <label class="font-italic" for="address2">Adresse</label>
          <input class="form-control" id="address2" type="text" />
        </div>
      </div>
    
    </div>

    【讨论】:

    • 哪个更好,网格或弹性系统。 Flex 系统看起来更完整,但也更复杂……
    • @DavidBrunelle 对于一个响应式站点,通常我使用网格系统作为基础,然后,对于特定情况或目标,我使用弹性类和 Bootstrap 提供的其他实用程序来完成。你有navbarsmodalsboxescards,还有很多其他东西都在框架中。但是,这当然只是我的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多