2015-12-14 42 views
16

Tôi đã xếp chồng div của mình để trông giống như giấy chưa mở. Tôi muốn đặt văn bản trên mỗi div, để chia chúng thành các phần.Cách đặt văn bản trên đường viền? (HTML, CSS)

Nhưng cách tôi tạo div, các phần hiển thị duy nhất là các đường viền. Khi tôi thêm văn bản vào các div, văn bản xuất hiện phía trên hoặc bên dưới, nơi văn bản sẽ hiển thị (vì chúng nằm trên các div ẩn).

Về cơ bản, các div của tôi là vô hình. Đường viền của tôi hiển thị. Tôi cần văn bản xuất hiện trên các đường viền. Nhưng để làm điều đó, tôi phải thay đổi phần đệm cho mỗi khối văn bản. Có cách nào để đặt văn bản chỉ trên biên giới? Hay là có cách nào dễ dàng hơn để có được những div bị nghiêng?

Tôi đã thử rotateY nhưng nó chỉ làm cho chúng co lại.

Bắt - Tôi chỉ có thể sử dụng HTML và CSS.

Đây là một ảnh chụp màn hình của nó như thế nào hiện đang xuất hiện:

![screenshot of current appearance

CSS:

#slant1 { 
width: 700px; 
height: 225px; 
background-color: white; 
font-family: thorndale for vst; 
font-size: 16px; 
} 

#slant2 { 
border-top: 260px solid #F2F2F2; 
border-left: 50px solid transparent; 
border-right: 50px solid transparent; 
height: 2600px; 
width: 600px; 
position: absolute; 
z-index: -1; 
} 

#slant3 { 
border-bottom: 225px solid #E6E6E6; 
border-left: 50px solid transparent; 
border-right: 50px solid transparent; 
height: 225px; 
width: 600px; 
font-family: thorndale for vst; 
font-size: 16px; 
} 

#slant4 { 
border-top: 225px solid #F2F2F2; 
border-left: 50px solid transparent; 
border-right: 50px solid transparent; 
height: 225px; 
width: 600px; 
} 




<!DOCTYPE html> 
<html lang="en" id="Origami"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Origami</title> 
<link href="discover.css" rel="stylesheet" type="text/css" /> 
<meta name="description" content="Origami" /> 
<meta name="keywords" content="Origami"> 
<meta name="author" content="JojoRae" /> 
</head> 
<body> 
<div id="columnwrapper2"> 
<div id="slant1"> 
<div class="adamas1"></div> <div class="adamas"></div> 
<p class="p"> 
</p> 
</div> 
<div id="slant2"> 
<ul class="slides"> 
<input type="radio" name="group3" id="img-11" checked /> 
<li class="slide-container"> 
<div class="slide"> 
<img src="../ei/treasure.gif" /> 
</div> 
<div class="nav"> 
<label for="img-15" class="prev">&#x2039;</label> 
<label for="img-12" class="next">&#x203a;</label> 
</div> 
</li> 
</ul> 
</div> 
<div id="slant3"> 
<div class="adamas3"></div> 
<p class="p2"></p> 
</div> 
<div id="slant4"> 
</div> 
</div> <!--closes columnwrapper--> 
</body> 
</html> 
+3

bạn có thể cho chúng tôi biết cấu trúc HTML của bạn không? –

+0

CSS hoạt động chặt chẽ cùng với HTML, vì vậy mặc dù có CSS, những gì còn thiếu là HTML. Có cách nào bạn có thể sao chép nguồn HTML của trang và cập nhật câu hỏi để bao gồm điều này không? cảm ơn – user454038

Trả lời

4

Cá nhân tôi sẽ bỏ qua các tùy chọn biên giới (đó là một bit hacky) và đi với một cái gì đó khác nhau (và có lẽ dễ dàng hơn). Dưới đây là một vài lựa chọn:

1) Sử dụng CSS3 Transforms 3D

Bạn thử cái này nhưng nó đã không làm việc. Từ những gì bạn nói trong câu hỏi, vấn đề bạn tìm thấy khi sử dụng rotateY (nó chỉ co lại) có vẻ là do bạn không kết hợp nó với perspective. Một khi bạn làm như vậy (và chơi một chút với các giá trị để chúng điều chỉnh theo những gì bạn đang tìm kiếm), không chỉ div sẽ nghiêng mà còn làm cho nội dung của nó trông giống như nó ở cùng góc với hiệu ứng giấy.

Dưới đây là một ví dụ (also available on this JSFiddle):

html, body { 
 
    background:#444; 
 
} 
 

 
#columnwrapper2 { 
 
    min-width:700px; 
 
} 
 

 
.slant { 
 
    margin:auto auto; 
 
} 
 

 
#slant1 { 
 
    width: 700px; 
 
    height: 225px; 
 
    background-color: white; 
 
    font-family: thorndale for vst; 
 
    font-size: 16px; 
 
} 
 

 
#slant2 { 
 
    width:655px; 
 
    height:225px; 
 
    background:#eee; 
 
    transform: perspective(600px) rotateX(-20deg); 
 
} 
 

 
#slant3 { 
 
    width:668px; 
 
    height:225px; 
 
    background:#ddd; 
 
    transform: perspective(600px) rotateX(20deg) translateY(-33px); 
 
} 
 

 
#slant4 { 
 
    width:642px; 
 
    height:225px; 
 
    background:#eee; 
 
    transform: perspective(600px) rotateX(-20deg) translateY(-33px); 
 
}
<div id="columnwrapper2"> 
 
    <div id="slant1" class="slant"> 
 
    <div> 
 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris mi odio, fermentum eget ex sed, tincidunt consectetur enim. Suspendisse viverra commodo ultrices. In eu facilisis leo, quis consectetur ex. Nam congue fringilla elit, ac mattis velit dictum ac. Donec tincidunt placerat ligula fermentum vulputate. Sed malesuada orci sit amet enim euismod, et euismod nunc pretium. Ut molestie et sem eu consectetur. Praesent fringilla elit enim, a convallis nulla sodales id. Sed tristique cursus libero. Cras ac magna id nisl pulvinar iaculis eu sit amet velit. 
 
    </div> 
 
    </div> 
 
    <div id="slant2" class="slant"> 
 
    <div> 
 
     <img src="http://lorempixel.com/500/200/people" alt="Random Picture" /> 
 
    </div> 
 
    </div> 
 
    <div id="slant3" class="slant"> 
 
    <div> 
 
     Vivamus interdum facilisis justo ut fermentum. Cras turpis diam, efficitur sit amet mi sit amet, dapibus fermentum odio. Aenean fermentum tincidunt placerat. Vivamus dictum, diam quis elementum laoreet, lacus ex consectetur neque, eget fringilla ipsum neque nec sem. Ut eget venenatis urna, quis feugiat orci. Pellentesque vel interdum ante. Nulla blandit ex quam, non sollicitudin lectus laoreet nec. Integer vitae finibus elit. Duis pellentesque turpis odio, sit amet convallis libero blandit et. Maecenas accumsan est eros, vel scelerisque nulla scelerisque sit amet. 
 
    </div> 
 
    </div> 
 
    <div id="slant4" class="slant"> 
 
    <div> 
 
     Duis non placerat nisi, in maximus tellus. Nullam in interdum nunc, sed tempus nunc. Suspendisse lorem nisi, blandit vel odio ac, varius rhoncus sem. Phasellus quis placerat enim, id iaculis eros. Nunc at egestas nisi. Nulla in dui mattis, lacinia lectus ac, commodo ligula. Fusce fringilla vitae magna sit amet dignissim. Fusce quis elit elementum, faucibus eros id, facilisis mi. In vitae accumsan tellus. Quisque venenatis lacus urna, volutpat luctus eros feugiat id. Duis pretium pulvinar molestie. Nulla eget rhoncus sapien. 
 
    </div> 
 
    </div> 
 
</div> <!--closes columnwrapper-->


2) Sử dụng SVG

tùy chọn khác sẽ được sử dụng SVG. Đây có thể là một giải pháp thay thế dễ dàng hơn nếu bạn không muốn văn bản nghiêng với hiệu ứng gấp giấy (hoặc cái không yêu cầu chơi với các con số). Nó sẽ yêu cầu bạn phải biết chiều cao chính xác của mỗi phần mặc dù.

Bạn có thể tạo hình ảnh trong SVG (trực tiếp dưới dạng hình ảnh hoặc dưới dạng mã bên dưới) và đặt nó ở chế độ nền của #columnwrapper2, phần còn lại của nội dung sẽ nằm trên đầu hình ảnh.

Xem demo này (also available on this JSFiddle):

html, body { 
 
    background:#444; 
 
} 
 

 
#columnwrapper2 { 
 
    width:700px; 
 
    position:relative; 
 
} 
 

 
.slant { 
 
    margin:auto auto; 
 
    height:250px; 
 
    width:600px; 
 
    padding:50px auto; 
 
    z-index:2; 
 
    position:relative; 
 
}
<div id="columnwrapper2"> 
 
    <svg width="700px" height="1000px" style="position:absolute;top:0;left:0;z-index:1;"> 
 
    <path fill="#ffffff" d="M0,0 700,0 700,250 0,250Z" /> 
 
    <path fill="#eeeeee" d="M0,250 700,250 650,500 50,500Z" /> 
 
    <path fill="#dddddd" d="M50,500 650,500 700,750 0,750Z" /> 
 
    <path fill="#eeeeee" d="M0,750 700,750 650,1000 50,1000Z" /> 
 
    </svg> 
 
    <div id="slant1" class="slant"> 
 
    <div> 
 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris mi odio, fermentum eget ex sed, tincidunt consectetur enim. Suspendisse viverra commodo ultrices. In eu facilisis leo, quis consectetur ex. Nam congue fringilla elit, ac mattis velit dictum ac. Donec tincidunt placerat ligula fermentum vulputate. Sed malesuada orci sit amet enim euismod, et euismod nunc pretium. Ut molestie et sem eu consectetur. Praesent fringilla elit enim, a convallis nulla sodales id. Sed tristique cursus libero. Cras ac magna id nisl pulvinar iaculis eu sit amet velit. 
 
    </div> 
 
    </div> 
 
    <div id="slant2" class="slant"> 
 
    <div> 
 
     <img src="http://lorempixel.com/500/200/people" alt="Random Picture" /> 
 
    </div> 
 
    </div> 
 
    <div id="slant3" class="slant"> 
 
    <div> 
 
     Vivamus interdum facilisis justo ut fermentum. Cras turpis diam, efficitur sit amet mi sit amet, dapibus fermentum odio. Aenean fermentum tincidunt placerat. Vivamus dictum, diam quis elementum laoreet, lacus ex consectetur neque, eget fringilla ipsum neque nec sem. Ut eget venenatis urna, quis feugiat orci. Pellentesque vel interdum ante. Nulla blandit ex quam, non sollicitudin lectus laoreet nec. Integer vitae finibus elit. Duis pellentesque turpis odio, sit amet convallis libero blandit et. Maecenas accumsan est eros, vel scelerisque nulla scelerisque sit amet. 
 
    </div> 
 
    </div> 
 
    <div id="slant4" class="slant"> 
 
    <div> 
 
     Duis non placerat nisi, in maximus tellus. Nullam in interdum nunc, sed tempus nunc. Suspendisse lorem nisi, blandit vel odio ac, varius rhoncus sem. Phasellus quis placerat enim, id iaculis eros. Nunc at egestas nisi. Nulla in dui mattis, lacinia lectus ac, commodo ligula. Fusce fringilla vitae magna sit amet dignissim. Fusce quis elit elementum, faucibus eros id, facilisis mi. In vitae accumsan tellus. Quisque venenatis lacus urna, volutpat luctus eros feugiat id. Duis pretium pulvinar molestie. Nulla eget rhoncus sapien. 
 
    </div> 
 
    </div> 
 
</div> <!--closes columnwrapper-->

Một lợi thế của SVG này là nó được hỗ trợ bởi hầu hết trình duyệt (với các giải pháp transform trước, bạn có thể tìm thấy một số vấn đề với IE cần chỉnh sửa).

Các vấn đề liên quan