Изменить размер элемента ввода заголовка на дизайн ясности

Я использую панель заголовка из clarity.design примеры, я возился с этим, пытаясь заставить входные данные поиска занимать 100% центра строки заголовка, но я не могу этого сделать.

Код:

<clr-header class="header-6">
    <div class="branding">
      <a [routerLink]="['/']" routerLinkActive="router-link-active"  class="nav-link">
        <span class="title">Project Clarity</span>
      </a>
    </div>

    <form class="search" (ngSubmit)="onSearchSubmit(f)" #f="ngForm">
      <label for="search_input"></label>
      <input id="search_input" name="search_input" type="text" placeholder=" Search for keywords or paste link..." ngModel required>
    </form>

    <div class="header-actions">
      <div class="header-nav" [clr-nav-level]="1">
        <a class="nav-link nav-text">
          My menu
        </a>
      </div>

      <clr-dropdown>
        <button class="nav-icon" clrDropdownTrigger>
          <clr-icon shape="user"></clr-icon>
          <clr-icon shape="caret down"></clr-icon>
        </button>
        <clr-dropdown-menu *clrIfOpen clrPosition="bottom-right">
          <a clrDropdownItem>Preferences</a>
          <a clrDropdownItem>Log out</a>
        </clr-dropdown-menu>
      </clr-dropdown>
    </div>
  </clr-header>

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

Благодарю.

1 ответ

The header is using flex box for layout.

Here is a POC stackblitz that uses the below css to override the default search styles.

CSS

.search {
  border: 1px solid deeppink;
  flex: 1 1 auto;
  max-width: none;
}

.search > label {
  flex: 1 1 auto;
  max-width: 90%;
}

.search > label > input {
  width: 100%;
}

It should give you a starting point to tweak for your apps visual style. You may also need to address the responsive use case.

Решением вашей проблемы является CSS.

Ниже приведен пример, который показывает, с чего можно начать.

Дайте мне знать, если это поможет вам.

/* First, make your elements float to the left or right */
.header-6 div
, .header-6 form {
  float: left;
}

div.header-actions{
  float: right;
}

/* Then give them some space */
div.branding
, form.search
, div.header-actions {
  padding-left: 20px;
  padding-right: 20px;;
}

 /* The rest is using FontAwesome and CSS to add the icons and the other stuff */
<clr-header class="header-6">
    <div class="branding">
      <a [routerLink]="['/']" routerLinkActive="router-link-active"  class="nav-link">
        <span class="title">Project Clarity</span>
      </a>
    </div>

    <form class="search" (ngSubmit)="onSearchSubmit(f)" #f="ngForm">
      <label for="search_input"></label>
      <input id="search_input" name="search_input" type="text" placeholder=" Search for keywords or paste link..." ngModel required>
    </form>

    <div class="header-actions">
      <div class="header-nav" [clr-nav-level]="1">
        <a class="nav-link nav-text">
          My menu
        </a>
      </div>

      <clr-dropdown>
        <button class="nav-icon" clrDropdownTrigger>
          <clr-icon shape="user"></clr-icon>
          <clr-icon shape="caret down"></clr-icon>
        </button>
        <clr-dropdown-menu *clrIfOpen clrPosition="bottom-right">
          <a clrDropdownItem>Preferences</a>
          <a clrDropdownItem>Log out</a>
        </clr-dropdown-menu>
      </clr-dropdown>
    </div>
  </clr-header>

Другие вопросы по тегам