Bootstrap 4 'text-truncate' класс позиционирует текст ниже - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь добавить многоточие на заголовок, если он слишком длинный.Я хочу уважать адаптивный макет и не хочу добавлять фиксированную ширину к заголовку карты .

Я использую text-truncate для добавления многоточия на заголовке карты.

Карты в столбце для использования изображения слева от текста.

enter image description here

<div class="container">
    <div class="row">
        @foreach($posts as $post)
        <div class="col-lg-6 p-1">
            <div class="card border-0">
                <div class="row no-gutters">
                    <div class="col-auto">
                        <img src="{{ $post->featured_image ? $post->featured_image : '/images/placeholder-image.png' }}" class="img-fluid" width="150" height="150" alt="{{ $post->title }}" style="width: 150px; height: 150px; object-fit: cover;">
                    </div>
                    <div class="col">
                        <div class="card-body">
                            <h3 class="card-title text-truncate">{{ $post->title }}</h3>
                            <p class="card-text m-0">{{ $post->short_summary }}</p>
                            <small>{{ $post->published_at->format('M d') }} — {{ $post->read_time }}</small>
                        </div>
                    </div>
                    <a href="{{ route('post', $post->slug) }}" class="stretched-link"></a>
                </div>
            </div>
        </div>
        @endforeach
    </div>
</div>

Но если я добавлю текст-truncate class, заголовок и содержание недоступны.

enter image description here

Ответы [ 3 ]

0 голосов
/ 09 апреля 2019

Используйте flex-nowrap на внутреннем row. Это предотвратит упаковку col & col-auto.

     <div class="col-lg-6 p-1">
            <div class="card border-0">
                <div class="row no-gutters flex-nowrap">
                    <div class="col-auto">
                        <img src="//placehold.it/400" class="img-fluid" width="150" height="150" alt="" style="width: 150px; height: 150px; object-fit: cover;">
                    </div>
                    <div class="col">
                        <div class="card-body">
                            <h3 class="card-title text-truncate">title is longer</h3>
                            <p class="card-text m-0">summary</p>
                            <small>read time</small>
                        </div>
                    </div>
                    <a href=".." class="stretched-link"></a>
                </div>
            </div>
     </div>

https://www.codeply.com/go/szhxXTLETa

0 голосов
/ 09 апреля 2019

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>

<div class="container">
   
    <div class="card">
        <div class="row no-gutters">
            <div class="col-2">
                <img src="//placehold.it/200" class="img-fluid" alt="">
            </div>
            <div class="col-4">
                <div class="card-block px-2">
                    <h4 class="card-title text-truncate">Title</h4>
                    <p class="card-text text-truncate">Description</p>
                   
                </div>
            </div>
            
            <div class="col-2">
                <img src="//placehold.it/200" class="img-fluid" alt="">
            </div>
            <div class="col-4">
                <div class="card-block px-2">
                    <h4 class="card-title text-truncate">Title long textlong textlong textlong text</h4>
                    <p class="card-text text-truncate">long textlong textlong textlong textlong text</p>
                   
                </div>
            </div>
        </div>
        
    </div>
</div>
0 голосов
/ 09 апреля 2019

Вам не хватает overflow: hidden; на <div class="col">. Содержимое всегда будет иметь полную ширину, если вы не установите переполнение родительского контейнера скрытым при использовании flexbox.

.col-special {
  overflow: hidden;
}
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<div class="container">
    <div class="row">
        <div class="col-lg-6 p-1">
            <div class="card border-0">
                <div class="row no-gutters">
                    <div class="col-auto">
                        <img src="https://via.placeholder.com/150x150" class="img-fluid" width="150" height="150" alt="{{ $post->title }}" style="object-fit: cover;">
                    </div>
                    <div class="col col-special">
                        <div class="card-body">
                            <h3 class="card-title text-truncate">Comment écrire une "story" complète ?</h3>
                            <p class="card-text m-0">Une story, c'est en faite, simplement une histoire qui racoute ce que vous voule...</p>
                            <small>Apr 07 — 1 min read</small>
                        </div>
                    </div>
                    <a href="{{ route('post', $post->slug) }}" class="stretched-link"></a>
                </div>
            </div>
        </div>
    </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...