2010-10-19 17 views
8

Mam DIV z wieloliniowym akapitem.Pokaż pierwszą linię akapitu

Czy istnieje sposób (może za pomocą jQuery), aby wyświetlić tylko pierwszy wiersz akapitu i ukryć inne?

+0

jQuery działa na DOM/bezpośrednich elementów. akapit jest elementem. linie to akapit nie jest. więc nie sądziłem, że to będzie możliwe. – RPM1984

+0

powiązane http://stackoverflow.com/a/22811590/759452 –

Odpowiedz

3

Nie ma na to sposobu, określając pierwszy wiersz. Proponuję zmienić wysokość DIV za pomocą CSS, aby pokazać tylko pierwszą linię. Wydaje mi się, że to najprostsze rozwiązanie. Jeśli chcesz zmienić, aby wyświetlić całą linię za pomocą javascript, użyj go, aby zmienić wysokość DIV z powrotem na 100%.

EDIT: Poprawiłem się, nie wiedziałem, że istnieje pseudo-klasa pierwszej linii. Jednak zmiana wysokości może nadal być najprostszym sposobem.

+0

również nie wiedział. – RPM1984

+0

Dzięki Ben - zadziałało! – Victor

+0

@Victor P Cieszymy się, że możemy Ci pomóc! –

7

Oto sposób (w pewnym sensie), dokonując paragraf białe na białym z wyjątkiem: first-line IT: http://jsbin.com/usora4/2/edit

fragment CSS:

p { color: white; } 
p:first-line { color: black; } 
+0

Tak, to działa, oprócz odstępów. p nie będzie rozmiaru automatycznego, ponieważ zawartość nadal tam jest. więc ukrywa tekst, ale nie ma rzeczywistej "linii" (gdzie "linia" odnosi się do bloku przestrzeni w akapicie). wciąż +1. :) – RPM1984

+0

Dobry, prosty pomysł. Ale wciąż używa tej samej przestrzeni co cały akapit. – Victor

0

określić wysokość linię i ustaw wysokość div tak, aby pokazywała się tylko jedna linia i ustaw atrybut div na overflow na hidden.

-1

Nie próbowałem go, ale powinieneś być w stanie zrobić trochę lepiej przy użyciu widoczności, np.

<div class="excerpt"> 
    This is my text. It has many lines. This is my text. 
    It has many lines. This is my text. It has many lines. 
    This is my text. It has many lines. This is my text. 
    It has many lines. 
</div> 

a następnie utworzenie stylu

div.excerpt { visibility: hidden; } 
div.excerpt:first-line { visibility: visible; } 
+1

To nie działa. Próbowałem zarówno widoczności, jak i wyświetlania i nie mogłem go uruchomić. Co zabawne, działało na kolor. Ale znowu zadziałało tylko wtedy, gdy zmieniłem z div na p i wprowadziłem
pomiędzy liniami ... –

4

został chwilę ponieważ było to odpowiedział, ale widząc brak jest przykładem jest tu taki, który działa całkiem dobrze:

<div style="width:200px"> 
<div> 
    This is above the paragraph. 
</div> 
<div class="excerpt"> 
    This is my text. It has many lines. This is my text. 
    It has many lines.This is my text. It has many lines. 
    This is my text. It has many lines. This is my text. 
    It has many lines. 
</div> 
<div> 
    This is below the paragraph. 
</div> 
</div> 


<style type="text/css"> 
div.excerpt { height:2.2em; overflow:hidden; } 
div.excerpt:hover { height:auto; } 
</style> 

http://jsfiddle.net/h82313am/

2

Nie wymaga JavaScript, wysokości pomiaru ani zmiany widoczności. Wystarczy ustawić akapit, aby wyświetlał tekst, a nie zawijać tekstu. Będziesz chciał ustawić przepełnienie na div jednostki nadrzędnej na "ukryty", aby pozostałe linie w akapicie nie rozlały się.

#wrap { 
    overflow: hidden; 
    text-overflow: ellipsis; 
} 
p { 
    display: inline; 
    white-space: nowrap; 
}​ 

http://jsfiddle.net/VvdBs/

1

Wystarczy dodać ten tutaj jako idea. Pozwala pokazać i ukryć tekst za pomocą pola tekstowego. Tylko CSS.

p.bar { font-size:0; margin:0;padding:10px;background: #ddd; -webkit-transition: font-size .25s;transition: font-size .25s; 
 
} 
 
p.bar:first-line { font-size:20px; } 
 
input:checked + label + p.bar {font-size: 20px;}
<input id="foo" type="checkbox"><label for="foo">show</label><p class="bar">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p> 
 

 
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>

Powiązane problemy