css-grid создает воображаемый столбец

У меня был случай, когда мне нужно было передать свойства системы multiple в тестовый JVM, но не все (не хотели пропускать нерелевантные). Основываясь на приведенных выше ответах и ​​используя subMap для фильтрации тех, которые мне нужны, это сработало для меня:

task integrationTest(type: Test) {
    // ... Do stuff here ...
    systemProperties System.getProperties().subMap(['PROP1', 'PROP2'])
}

В этом примере только PROP1 и PROP2 будут переданы в , если они существуют в JVM градильни.

1
задан kukkuz 5 March 2019 в 17:08
поделиться

1 ответ

Минимальный размер элемента сетки равен его содержанию; Это означает, что min-width и min-height разрешается до auto.

Чтобы обеспечить более приемлемый минимальный размер по умолчанию для элементов сетки, эта спецификация определяет, что автоматическое значение min-width / min-height также применяет автоматический минимальный размер по указанной оси к элементам сетки, чье переполнение видно и которые охватывают по меньшей мере одну дорожку, для которой функция определения размера минимальной дорожки является автоматической.

MDN

И обратите внимание, что входные элементы имеют собственную ширину . Так что здесь вы можете добавить min-width: 0 к input элементам к исправить проблему - см. Демонстрацию ниже:

h1, h2 {
  font-family: Lato;
}


.form{
  border: 1px solid black;
  text-align: center;
  display: grid;
  grid-template-rows: 1fr;
  grid-gap: 1em;
}

input {
  min-width: 0; /* ADDED */
}

.two-field{
  display: grid;
  grid-template-columns: 0.25fr 0.75fr;
}

/********************/
/* Four elements row*/
/********************/
.four-field{
  display: grid;
  grid-template-columns: 0.5fr 0.5fr;
}

.four-field .left{
  display: grid;
  grid-template-columns: 0.5fr 0.5fr;
}

.four-field .right{
  display: grid;
  grid-template-columns: 0.25fr 0.75fr;
}
/********************/
/********************/
/********************/

/********************/
/******Buttons*******/
/********************/
.buttons{
  display: grid;
  grid-template-columns: 0.25fr 0.75fr;
}

.button-column{
  display: grid;
  grid-template-columns: 0.5fr 0.5fr;
  grid-column-gap: 1em;
}
/********************/
/********************/
/********************/
<div id="app">
	<form class="form">
		<div class="two-field">
			<label>First name:</label>
      <input type="text" name="firstname">
    </div>

    <div class="four-field">
      <div class="left">
        <label>Postal code:</label>
        <input type="text" name="Postal code">
      </div>
      <div class="right">
        <label>Place:</label>
        <input type="text" name="Place" >
      </div>
    </div>

    <div class="two-field">
      <label>Phone</label>
      <input type="text" name="phone">
    </div>

    <div class="buttons">
      <div class="empty"></div>
      <div class="button-column">
        <button type="submit">Confirm</button>
        <button>Abort</button>
      </div>
    </div>
  </form>
</div>
[ 1110]


Предложение

Но здесь не нужно много вложений (я предлагаю изменить разметку здесь ) - вы можете сделать эту работу в простой 4-колоночной разметке сетки, как показано ниже:

.form {
  border: 1px solid black;
  text-align: center;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 1em;
  padding: 10px;
}

input {
  min-width: 0;
}

input[name=firstname],
input[name=phone] {
  grid-column: span 3;
}

.button-column {
  grid-column: 2 / 5;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 1em;
}
<div id="app">
  <form class="form">
    <label>First name:</label>
    <input type="text" name="firstname">
    <label>Postal code:</label>
    <input type="text" name="Postal code">
    <label>Place:</label>
    <input type="text" name="Place">
    <label>Phone</label>
    <input type="text" name="phone">
    <div class="button-column">
      <button type="submit">Confirm</button>
      <button>Abort</button>
    </div>
  </form>
</div>

0
ответ дан kukkuz 5 March 2019 в 17:08
поделиться