2016-09-06 1 views
-1

J'utilise des messages de wordpress et pour faire de chaque article de la même longueur j'utilise le code CSS que vous pouvez voir ci-dessous. Cela a fonctionné très bien jusqu'à maintenant, quand j'ai ajouté un post avec plus d'un paragraphe. Lorsqu'il y a plus d'un paragraphe, ce code ne s'applique pas du tout et il affiche simplement le message complet. Est-il possible d'appliquer ce code uniquement au premier paragraphe?Est-il possible d'appliquer une ellipse de débordement de texte uniquement sur le premier paragraphe?

J'utilise le code suivant:

.newspost p { 
    display: block; 
    display: -webkit-box; 
    line-height: 18px; 
    -webkit-line-clamp: 8; 
    -webkit-box-orient: vertical; 
    overflow: hidden; 
    text-overflow: ellipsis; 
} 

<div class="newspost"> 
    <h2><?php echo get_the_title(); ?> </h2> 
    <p> 
    <?php the_content(); ?> 
    </p> 
    <div class="read-more"> 
    <a href="<?php echo get_preview_post_link(); ?>">lees meer</a> 
    </div> 
</div> 
+0

Pouvez-vous montrer le contenu rendu qui a plus d'un parapgraphe. Aussi, quel est le point de l'ellipse si vous allez montrer plus d'un paragraphe - sûrement le point est qu'il est coupé, puis vous cliquez sur le plus pour plus de contenu, vous ne devriez pas couper le premier paragraphe puis montrer une seconde - cela signifie que tout contexte de la première sera perdu – Pete

+0

Je comprends pourquoi vous êtes confus de ne l'appliquer que sur le premier paragraphe. Le problème était que j'utilisais la balise p pour charger le contenu à l'intérieur, qui contenait aussi des balises p. Au moins, c'est ce que je pense. Je ne pouvais pas obtenir les autres paragraphes pour rester caché de toute façon, c'est pourquoi je suis venu avec ce genre de "solution" tordue que j'ai posté ci-dessous. – amyvl

+0

Marquez la bonne réponse s'il y en a une. –

Répondre

2

Vous pouvez utiliser le: premier de type sélecteur CSS pour atteindre cet

.newspost p:first-of-type { 
    display: block; 
    display: -webkit-box; 
    line-height: 18px; 
    -webkit-line-clamp: 8; 
    -webkit-box-orient: vertical; 
    overflow: hidden; 
    text-overflow: ellipsis; 
} 
+0

J'ai essayé d'appliquer cela, mais il ne s'applique à aucun des messages. – amyvl

+0

@amyvl parce que la balise * p * n'est pas le premier enfant de '.newspost' ... et ne fonctionnera pas non plus parce que vous récupérez tout le contenu d'une balise * p * et non pas chaque paragraphe du contenu d'une nouvelle balise marque. – DaniP

+0

désolé vérifier la nouvelle réponse mise à jour. Le sélecteur est: first-of-type –

1

Vous pouvez utiliser :first-of-type sélecteur de style premier alinéa sont acceptés dans les .newspost.

.newspost p:first-of-type { 
 
    display: block; 
 
    display: -webkit-box; 
 
    line-height: 18px; 
 
    -webkit-line-clamp: 8; 
 
    -webkit-box-orient: vertical; 
 
    overflow: hidden; 
 
    text-overflow: ellipsis; 
 
}
<div class="newspost"> 
 
    <h2>Heading</h2> 
 
    <p> 
 
    Lorem ipsum dolor site amet, Lorem ipsum dolor site amet , Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet , Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site ametLorem ipsum dolor site amet, Lorem ipsum dolor site amet , Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site ametLorem ipsum dolor site amet, Lorem ipsum dolor site amet , Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site ametLorem ipsum dolor site amet, Lorem ipsum dolor site amet , Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet 
 
    </p> 
 
    <p> 
 
    Lorem ipsum dolor site amet, Lorem ipsum dolor site amet , Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet , Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site ametLorem ipsum dolor site amet, Lorem ipsum dolor site amet , Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site ametLorem ipsum dolor site amet, Lorem ipsum dolor site amet , Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site ametLorem ipsum dolor site amet, Lorem ipsum dolor site amet , Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet, Lorem ipsum dolor site amet 
 
    </p> 
 
    <div class="read-more"> 
 
    <a href="#">lees meer</a> 
 
    </div> 
 
</div>

+0

@amyvl vous êtes les bienvenus) –

0
.newspost p:first-of-type { 
    display: block; 
    display: -webkit-box; 
    line-height: 18px; 
    -webkit-line-clamp: 8; 
    -webkit-box-orient: vertical; 
    overflow: hidden; 
    text-overflow: ellipsis; 
} 

En appliquant "p: first-of-type", comme suggéré par leli.1337 et Muhammed Usman ...

<div class="newspost"> 

    <h2><?php echo get_the_title(); ?> </h2> 

    <?php the_content(); ?> 

    <div class="read-more"> 
    <a href="<?php echo get_preview_post_link(); ?>">lees meer</a> 
    </div> 

</div> 

... et En supprimant la balise p à l'intérieur de la division newspost, j'ai réussi à réaliser ce que je cherchais. La raison pour laquelle je peux supprimer la balise p est parce que mes messages wordpress génèrent leurs propres paragraphes, alors maintenant, il ne s'applique qu'à ce premier. J'ai aussi ajouté ceci pour empêcher les paragraphes à côté de la première du type de montrer:

.newspost p { 
    display: none; 
} 

Merci d'aider, et j'espère que quelqu'un trouve cela utile dans le cas où ils viennent à travers le même problème. :)