对齐左侧的左侧元素和右侧的右侧元素

时间:2019-10-29 23:05:44

标签: css css-grid

我正在使用html表单,并且对其应用了flexbox,左侧元素(公司,电子邮件)在左侧正确对齐,但右侧元素(名称和电话)未正确对齐。如何将网格的左列向右对齐?

谢谢您的时间!

这就是我所拥有的:

here the image

all_max_index = list(filter(lambda i : mylist[i] > max_nr*0.8, range(len(mylist))))
.contact form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 1rem;
  background: red;
}

.contact form label {
  display: block;
  font-size: 15px;
  margin-bottom: 5px;
}

.contact form p {
  margin: 0;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.contact form .full {
  grid-column: 1 / 3;
}

.contact form textarea {
  width: 100%;
}

.contact input {
  width: 80%;
  height: 2rem;
  border: 0.5px solid rgb(167, 156, 156);
}

.contact input::-webkit-input-placeholder {
  font-size: 12px;
  text-indent: 5px;
}

form .contact-to {
  width: 100%;
  height: 2rem;
}

2 个答案:

答案 0 :(得分:1)

在列之间的间隔中设置grid-column-gap,并将输入的宽度更改为100%

.contact form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 1rem;
  background: red;
  grid-column-gap: 10%;
}

.contact form label {
  display: block;
  font-size: 15px;
  margin-bottom: 5px;
}

.contact form p {
  margin: 0;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.contact form .full {
  grid-column: 1 / 3;
}

.contact form textarea {
  width: 100%;
}

.contact input {
  width: 100%;
  height: 2rem;
  border: 0.5px solid rgb(167, 156, 156);
}

.contact input::-webkit-input-placeholder {
  font-size: 12px;
  text-indent: 5px;
}

form .contact-to {
  width: 100%;
  height: 2rem;
}
<div class="contact">
  <form action="" class="form">
    <p class="full">
      <label for="">Contact to</label>
      <select class="contact-to" name="request-type">
        <option value="candidates">Looking for candidates</option>
        <option value="job">Looking for a job</option>
        <option value="collaboration">Working with Asia-HR</option>
        <option value="other">Other</option>
      </select>
    </p>
    <p>
      <label for="">Company</label>
      <input type="text" name="company" placeholder="enter the name of your company">
    </p>
    <p>
      <label for="">Name*</label>
      <input type="text" name="name" placeholder="enter your name">
    </p>
    <p>
      <label for="">Email*</label>
      <input type="email" name="name" placeholder="enter your email">
    </p>
    <p>
      <Label>Phone</Label>
      <input type="phone" name="name" placeholder="enter your phone number">
    </p>
    <p class="full">
      <label for="Your message">Your message*</label>
      <textarea name="message" id="" cols="30" rows="10"></textarea>
    </p>
    <p class="full">
      <input type="file" name="document">
    </p>
    <p class="full">
      <button>Submit</button>

    </p>
  </form>
</div>

答案 1 :(得分:0)

您可以使用CSS媒体查询@media构成一列列。然后只需使用class代码中的HTML属性调用相关的列网格即可。

* {
 box-sizing: border-box;
}

.row::after {
   content: "";
   clear: both;
   display: table;
 }

[class*="col-"] {
  float: left;
  padding: 15px;
}

/* For mobile phones: */
[class*="col-"] {
  width: 100%;
}

@media only screen and (min-width: 600px) {
  /* For tablets: */
  .col-s-1 {width: 8.33%;}
  .col-s-2 {width: 16.66%;}
  .col-s-3 {width: 25%;}
  .col-s-4 {width: 33.33%;}
  .col-s-5 {width: 41.66%;}
  .col-s-6 {width: 50%;}
  .col-s-7 {width: 58.33%;}
  .col-s-8 {width: 66.66%;}
  .col-s-9 {width: 75%;}
  .col-s-10 {width: 83.33%;}
  .col-s-11 {width: 91.66%;}
  .col-s-12 {width: 100%;}
}

@media only screen and (min-width: 768px) {
  /* For desktop: */
  .col-1 {width: 8.33%;}
  .col-2 {width: 16.66%;}
  .col-3 {width: 25%;}
  .col-4 {width: 33.33%;}
  .col-5 {width: 41.66%;}
  .col-6 {width: 50%;}
  .col-7 {width: 58.33%;}
  .col-8 {width: 66.66%;}
  .col-9 {width: 75%;}
  .col-10 {width: 83.33%;}
  .col-11 {width: 91.66%;}
  .col-12 {width: 100%;}
}

<div class="row">
  <div class="col-8 col-s-9">
    <p>Some Text ...</p>
  </div>

  <div class="col-4 col-s-3">
    <p>Some Text ...</p>
  </div>   
</div>