Σε αυτό το κεφάλαιο θα μάθετε πώς να προσθέτετε πολλές εικόνες φόντου σε ένα στοιχείο.
Θα μάθετε επίσης για τις ακόλουθες ιδιότητες:
background-size
background-origin
background-clip
In this chapter you will learn how to add multiple background images to one element.
You will also learn about the following properties:
background-size
background-origin
background-clip
Το CSS σάς επιτρέπει να προσθέσετε πολλές εικόνες φόντου για ένα στοιχείο, μέσω του Ιδιότητα background-image
.
Οι διαφορετικές εικόνες φόντου χωρίζονται με κόμματα και οι εικόνες είναι στοιβάζονται το ένα πάνω στο άλλο, όπου η πρώτη εικόνα είναι πιο κοντά στον θεατή.
Το παρακάτω παράδειγμα έχει δύο εικόνες φόντου, η πρώτη εικόνα είναι ένα λουλούδι (στοίχιση κάτω και δεξιά) και η δεύτερη εικόνα είναι ένα χάρτινο φόντο (στοίχιση στην επάνω αριστερή γωνία):
#example1 {
background-image: url(img_flwr.gif), url(paper.gif);
background-position: right bottom, left top;
background-repeat: no-repeat, repeat;
}
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<head>
<style>
#example1 {
background-image: url(img_flwr.gif), url(paper.gif);
background-position: right bottom, left top;
background-repeat: no-repeat, repeat;
padding: 15px;
}
</style>
</head>
<body>
<h1>Multiple Backgrounds</h1>
<p>The following div element has two background images:</p>
<div id="example1">
<h1>Lorem Ipsum Dolor</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
</div>
</body>
</html>
Μπορούν να καθοριστούν πολλές εικόνες φόντου χρησιμοποιώντας είτε το άτομο ιδιότητες φόντου (όπως παραπάνω) ή τη συντομογραφία φόντο
.
Το παρακάτω παράδειγμα χρησιμοποιεί την ιδιότητα συντομογραφίας background
(ίδιο αποτέλεσμα με παραπάνω παράδειγμα):
#example1 {
background: url(img_flwr.gif) right bottom
no-repeat, url(paper.gif) left top repeat;
}
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<head>
<style>
#example1 {
background: url(img_flwr.gif) right bottom no-repeat, url(paper.gif) left top repeat;
padding: 15px;
}
</style>
</head>
<body>
<div id="example1">
<h1>Lorem Ipsum Dolor</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
</div>
</body>
</html>
Η ιδιότητα CSS background-size
σάς επιτρέπει να καθορίσετε το μέγεθος των εικόνων φόντου.
Το μέγεθος μπορεί να καθοριστεί σε μήκη, ποσοστά ή χρησιμοποιώντας ένα από τα δύο λέξεις-κλειδιά: περιέχει ή καλύπτει.
Το ακόλουθο παράδειγμα αλλάζει το μέγεθος μιας εικόνας φόντου σε πολύ μικρότερο από την αρχική εικόνα (χρησιμοποιώντας pixel):
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
Εδώ είναι ο κωδικός:
#div1
{
background: url(img_flower.jpg);
background-size: 100px 80px;
background-repeat: no-repeat;
}
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<head>
<style>
#example1 {
border: 1px solid black;
background: url(img_flwr.gif);
background-size: 100px 80px;
background-repeat: no-repeat;
padding: 15px;
}
#example2 {
border: 1px solid black;
background: url(img_flwr.gif);
background-repeat: no-repeat;
padding: 15px;
}
</style>
</head>
<body>
<h1>The background-size Property</h1>
<p>Resized background-image:</p>
<div id="example1">
<h2>Lorem Ipsum Dolor</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
</div>
<p>Original size of the background-image:</p>
<div id="example2">
<h2>Lorem Ipsum Dolor</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
</div>
</body>
</html>
Οι δύο άλλες πιθανές τιμές για το μέγεθος φόντου
είναι
contain
cover
Η λέξη-κλειδί contain
κλιμακώνει την εικόνα φόντου ώστε να είναι όσο το δυνατόν μεγαλύτερη (αλλά τόσο το πλάτος όσο και το ύψος του πρέπει να χωρούν στην περιοχή περιεχομένου). Ως εκ τούτου, ανάλογα με τις αναλογίες του φόντου εικόνας και την περιοχή τοποθέτησης φόντου, ενδέχεται να υπάρχουν ορισμένες περιοχές το φόντο που δεν καλύπτεται από την εικόνα φόντου.
Η λέξη-κλειδί εξώφυλλο
κλιμακώνει την εικόνα φόντου έτσι ώστε η περιοχή περιεχομένου να είναι καλύπτεται πλήρως από την εικόνα φόντου (τόσο το πλάτος όσο και το ύψος της είναι ίσα με ή υπερβαίνει την περιοχή περιεχομένου). Ως εκ τούτου, ορισμένα μέρη της εικόνας φόντου μπορεί να μην είναι ορατό στην περιοχή τοποθέτησης φόντου.
Το ακόλουθο παράδειγμα επεξηγεί τη χρήση του contain
και του εξωφύλλου
:
#div1
{
background: url(img_flower.jpg);
background-size: contain;
background-repeat: no-repeat;
}
#div2
{
background: url(img_flower.jpg);
background-size: cover; background-repeat: no-repeat;
}
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<head>
<style>
.div1 {
border: 1px solid black;
height: 120px;
width: 150px;
background: url(img_flwr.gif);
background-repeat: no-repeat;
background-size: contain;
}
.div2 {
border: 1px solid black;
height: 120px;
width: 150px;
background: url(img_flwr.gif);
background-repeat: no-repeat;
background-size: cover;
}
.div3 {
border: 1px solid black;
height: 120px;
width: 150px;
background: url(img_flwr.gif);
background-repeat: no-repeat;
}
</style>
</head>
<body>
<h1>The background-size Property</h1>
<h2>background-size: contain:</h2>
<div class="div1">
<p>Lorem ipsum dolor sit amet.</p>
</div>
<h2>background-size: cover:</h2>
<div class="div2">
<p>Lorem ipsum dolor sit amet.</p>
</div>
<h2>No background-size defined:</h2>
<div class="div3">
<p>Lorem ipsum dolor sit amet.</p>
</div>
<p>Original image:</p>
<img src="img_flwr.gif" alt="Flowers" width="224" height="162">
</body>
</html>
Η ιδιότητα background-size
δέχεται επίσης πολλές τιμές για το μέγεθος φόντου (χρησιμοποιώντας μια λίστα διαχωρισμένη με κόμματα), όταν εργάζεστε με πολλά υπόβαθρα.
Το ακόλουθο παράδειγμα έχει καθορισμένες τρεις εικόνες φόντου, με διαφορετικές τιμή μεγέθους φόντου για κάθε εικόνα:
#example1 {
background: url(img_tree.gif) left top
no-repeat, url(img_flwr.gif) right bottom no-repeat, url(paper.gif) left top
repeat;
background-size: 50px, 130px, auto;
}
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<head>
<style>
#example1 {
background: url(img_tree.gif) left top no-repeat, url(img_flwr.gif) right bottom no-repeat, url(paper.gif) left top repeat;
padding: 15px;
background-size: 50px, 130px, auto;
}
</style>
</head>
<body>
<div id="example1">
<h1>Lorem Ipsum Dolor</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
</div>
</body>
</html>
Τώρα θέλουμε να έχουμε μια εικόνα φόντου σε έναν ιστότοπο που να καλύπτει ολόκληρη παράθυρο του προγράμματος περιήγησης ανά πάσα στιγμή.
Οι απαιτήσεις είναι οι εξής:
Συμπληρώστε ολόκληρη τη σελίδα με την εικόνα (χωρίς λευκό διάστημα)
Κλίμακα εικόνας όπως απαιτείται
Κέντρο εικόνας στη σελίδα
Μην προκαλείτε γραμμές κύλισης
Το ακόλουθο παράδειγμα δείχνει πώς να το κάνετε. Χρησιμοποιήστε το στοιχείο <html> (το στοιχείο <html> είναι πάντα τουλάχιστον το ύψος του παραθύρου του προγράμματος περιήγησης). Στη συνέχεια, ορίστε ένα σταθερό και κεντραρισμένο φόντο σε αυτό. Στη συνέχεια προσαρμόστε το μέγεθός του με το Ιδιότητα μεγέθους φόντου:
html {
background: url(img_man.jpg) no-repeat
center fixed;
background-size: cover;
}
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<head>
<style>
html {
background: url(img_man.jpg) no-repeat center fixed;
background-size: cover;
}
body {
color: white;
}
</style>
</head>
<body>
<h1>Full Page Background Image</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
</body>
</html>
Θα μπορούσατε επίσης να χρησιμοποιήσετε διαφορετικές ιδιότητες φόντου σε ένα <div> για να δημιουργήσετε μια εικόνα ήρωα (μια μεγάλη εικόνα με κείμενο) και να την τοποθετήσετε όπου θέλετε.
.hero-image {
background: url(img_man.jpg) no-repeat center;
background-size: cover;
height: 500px;
position:
relative;
}
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
margin: 0;
font-family: Arial, Helvetica, sans-serif;
}
.hero-image {
background: url(img_man.jpg) no-repeat center;
background-size: cover;
height: 500px;
position: relative;
}
.hero-text {
text-align: center;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: white;
}
</style>
</head>
<body>
<div class="hero-image">
<div class="hero-text">
<h1 style="font-size:50px">I am John Doe</h1>
<h3>And I'm a Photographer</h3>
<button>Hire me</button>
</div>
</div>
<p>Page content..</p>
<p>Note that this technique will also make the image responsive: Resize the browser window to see the effect.</p>
</body>
</html>
Η ιδιότητα CSS background-origin
καθορίζει πού βρίσκεται η εικόνα φόντου τοποθετημένος.
Το ακίνητο παίρνει τρεις διαφορετικές τιμές:
πλαίσιο-πλαίσιο - η εικόνα φόντου ξεκινά από την επάνω αριστερή γωνία του περιγράμματος
padding-box - (προεπιλογή) η εικόνα φόντου ξεκινά από την επάνω αριστερή γωνία της άκρης padding
πλαίσιο περιεχομένου - η εικόνα φόντου ξεκινά από την επάνω αριστερή γωνία του περιεχομένου
Το ακόλουθο παράδειγμα επεξηγεί την ιδιότητα background-origin
:
#example1
{
border: 10px solid black;
padding: 35px;
background: url(img_flwr.gif);
background-repeat: no-repeat;
background-origin: content-box;
}
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<head>
<style>
#example1 {
border: 10px solid black;
padding: 35px;
background: url(img_flwr.gif);
background-repeat: no-repeat;
}
#example2 {
border: 10px solid black;
padding: 35px;
background: url(img_flwr.gif);
background-repeat: no-repeat;
background-origin: border-box;
}
#example3 {
border: 10px solid black;
padding: 35px;
background: url(img_flwr.gif);
background-repeat: no-repeat;
background-origin: content-box;
}
</style>
</head>
<body>
<h1>The background-origin Property</h1>
<p>No background-origin (padding-box is default):</p>
<div id="example1">
<h2>Lorem Ipsum Dolor</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
</div>
<p>background-origin: border-box:</p>
<div id="example2">
<h2>Lorem Ipsum Dolor</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
</div>
<p>background-origin: content-box:</p>
<div id="example3">
<h2>Lorem Ipsum Dolor</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
</div>
</body>
</html>
Η ιδιότητα CSS background-clip
καθορίζει την περιοχή ζωγραφικής του φόντου.
Το ακίνητο παίρνει τρεις διαφορετικές τιμές:
πλαίσιο-πλαίσιο - (προεπιλογή) το φόντο είναι ζωγραφισμένο στην εξωτερική άκρη του περιγράμματος
padding-box - το φόντο είναι βαμμένο στην εξωτερική άκρη του padding
πλαίσιο περιεχομένου - το φόντο είναι ζωγραφισμένο μέσα στο πλαίσιο περιεχομένου
Το ακόλουθο παράδειγμα απεικονίζει την ιδιότητα background-clip
:
#example1
{
border: 10px dotted black;
padding: 35px;
background: yellow;
background-clip: content-box;
}
Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<head>
<style>
#example1 {
border: 10px dotted black;
padding: 35px;
background: yellow;
}
#example2 {
border: 10px dotted black;
padding: 35px;
background: yellow;
background-clip: padding-box;
}
#example3 {
border: 10px dotted black;
padding: 35px;
background: yellow;
background-clip: content-box;
}
</style>
</head>
<body>
<h1>The background-clip Property</h1>
<p>No background-clip (border-box is default):</p>
<div id="example1">
<h2>Lorem Ipsum Dolor</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
</div>
<p>background-clip: padding-box:</p>
<div id="example2">
<h2>Lorem Ipsum Dolor</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
</div>
<p>background-clip: content-box:</p>
<div id="example3">
<h2>Lorem Ipsum Dolor</h2>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
</div>
</body>
</html>
Μια συντομογραφία ιδιότητας για τη ρύθμιση όλων των ιδιοτήτων φόντου σε μια δήλωση
Καθορίζει την περιοχή ζωγραφικής του φόντου
Καθορίζει μία ή περισσότερες εικόνες φόντου για ένα στοιχείο
Καθορίζει πού θα τοποθετηθούν οι εικόνες φόντου
Καθορίζει το μέγεθος των εικόνων φόντου