#html #css #width #native-base
#HTML #css #ширина #native-base
Вопрос:
Я пытаюсь использовать Native Base для создания заголовка для моего мобильного приложения Vue Native. Однако, <nb-body>
похоже, он не занимает нужную ширину.
Вот <template>
раздел:
<template>
<nb-container>
<nb-header>
<nb-left>
<nb-button transparent>
<nb-icon name="menu" :on-press="toggleDrawer" />
</nb-button>
</nb-left>
<nb-body>
<nb-title class="header-text">{{headerTitle}}</nb-title>
</nb-body>
<nb-right>
<nb-button transparent>
<nb-icon name="funnel" />
</nb-button>
</nb-right>
</nb-header>
<slot />
</nb-container>
</template>
И вот мой CSS:
<style>
.header-text{
font-family: Graduate-Regular;
text-align: center;
}
</style>
Пример того, как это выглядит.
Мой headerTitle
обрезается на многоточия (…), даже если у него больше места для использования. Когда я добавляю что-то подобное width: 120%
в свой CSS, это подходит. Но, и поправьте меня, если я здесь ошибаюсь, я не думаю, что хорошей практикой является указывать произвольную величину для ширины.
Есть ли какой-либо способ позволить nb-body
занимать все пространство между nb-left
и nb-right
, или, может быть, способ позволить ему занимать столько места, сколько ему нужно?
Большое вам спасибо.
Ответ №1:
Использование flex
. В этом сценарии они составляют до 1. Левый и правый занимают 1/5 и 1/5 заголовка. Тело занимает 3/5.
<nb-left :style="{flex:.2}>
<nb-button transparent>
<nb-icon name="menu" :on-press="toggleDrawer" />
</nb-button>
</nb-left>
<nb-body :style="{flex:.6}>
<nb-title class="header-text">{{headerTitle}}</nb-title>
</nb-body>
<nb-right :style="{flex:.2}>
<nb-button transparent>
<nb-icon name="funnel" />
</nb-button>
</nb-right>
Комментарии:
1. Логика, лежащая в ее основе, работает, но она не совсем корректна для Vue Native. Моя строка выглядит так:
<nb-left :style="{flex:.2}">
Это фактически решает мою проблему, я приму это, когда будут внесены изменения, чтобы он соответствовал правильному синтаксису.