html+css实现文字折叠特效实例
Sure, here are two examples of how to achieve text folding effects using HTML and CSS:
1. Using CSS text-overflow and white-space properties:
This method is suitable for simple text folding, where you want to hide a portion of the text and show an ellipsis (...) to indicate that there is more.
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Text Folding with CSS</title>
<style>
.folded-text {
display: -webkit-box; /* For compatibility with older browsers */
-webkit-line-clamp: 2; /* Set the number of lines to show */
-webkit-box-orient: vertical; /* Arrange lines vertically */
overflow: hidden; /* Hide excess text */
white-space: nowrap; /* Prevent text from wrapping */
text-overflow: ellipsis; /* Add ellipsis to indicate more text */
}
</style>
</head>
<body>
<p class="folded-text">This is a paragraph with a lot of text that will be folded into two lines using CSS. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</body>
</html>
Explanation:
HTML: The paragraph element has a class folded-text that applies the CSS styles.
CSS:
display: -webkit-box and -webkit-line-clamp: These properties are used for compatibility with older browsers. Modern browsers use display: flex and max-lines instead.-webkit-box-orient: vertical: This property ensures that the lines are stacked vertically.overflow: hidden: This property hides any text that exceeds the specified number of lines.white-space: nowrap: This property prevents the text from wrapping to the next line, ensuring that it fits within the given width.text-overflow: ellipsis: This property adds an ellipsis (...) to indicate that there is more text hidden.2. Using JavaScript to create a custom folding component:
This method offers more flexibility and control over the folding behavior, allowing you to dynamically adjust the number of lines based on available space or other criteria.
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Text Folding with JavaScript</title>
<style>
.folded-text {
white-space: nowrap;
overflow: hidden;
}
</style>
</head>
<body>
<p class="folded-text" id="myText">This is a paragraph with a lot of text that will be folded using JavaScript. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<script>
const textElement = document.getElementById('myText');
const maxHeight = 50; // Set the maximum height for the folded text
function foldText() {
const lines = textElement.offsetHeight / textElement.lineHeight;
if (lines > maxHeight) {
const numLines = Math.floor(maxHeight / textElement.lineHeight);
textElement.style.maxHeight = maxHeight + 'px';
textElement.textContent = textElement.textContent.slice(0, numLines * textElement.dataset.charLength) + '...';
《无所畏惧》温莉的结局是什么
时间:2023-11-25
《无所畏惧》刘铭的结局是什么
时间:2023-11-25
《无所畏惧》罗英子和陈硕最后在一起了吗
时间:2023-11-25
《宁安如梦》 姜雪宁是如何设计让薛姝去和亲
时间:2023-11-25
《宁安如梦》薛姝为了不和亲做了什么
时间:2023-11-25
《宁安如梦》为什么姜雪蕙只能当侧妃
时间:2023-11-25