Фонові зображення: як заповнити весь div, якщо зображення невелике, і навпаки


79

У мене три проблеми:

  1. Коли я намагався використовувати фонове зображення у div меншого розміру, div відображає лише частину зображення. Як я можу показати повну або певну частину зображення?

  2. У мене менше зображення, і я хочу використовувати його у більшому div. Але не хочу використовувати функцію повторення.

  3. Чи існує якийсь спосіб у CSS маніпулювати непрозорістю зображення?

Відповіді:


128

Змініть розмір зображення відповідно до розміру div.
За допомогою CSS3 ви можете зробити це:

/* with CSS 3 */
#yourdiv {  
    background: url('bgimage.jpg') no-repeat;
    background-size: 100%;
}

Як розтягнути фонове зображення на веб-сторінці :

Про непрозорість

#yourdiv {
    opacity: 0.4;
    filter: alpha(opacity=40); /* For IE8 and earlier */
}

Або подивіться на прозорість / прозорість зображення CSS


але це створить навантаження на сервер для завантаження декількох зображень (що є подібним, як відомо v)), тому замість використання декількох зображень, використання одного зображення та strechg n збірка є кращим способом .. але не знайте, як це ..
— Aakash Sahai

Пункти 1 і 2 не є рішеннями цієї проблеми. Перший пункт стосується збереження пропорції зображення, другий момент, здається, взагалі не працює. За допомогою CSS3 властивість background-size вирішить цю проблему, до цього часу, мабуть, вам слід залишити якийсь хакер.
— Sondre

IE не підтримує цього (розмір bg). Що робити?
— KarSho

82

Щоб автоматично збільшити зображення та охопити весь розділ div, не залишаючи жодної його частини незаповненою, використовуйте:

background-size: cover;

2
Найменший коментар на цій сторінці та найбільша користь у моєму випадку. Дякую
— Руслан Абузант

1
у мене не працює, але мій div знаходиться всередині <th> всередині <tr> всередині <table>. не знаю, чому саме тому
— user1709076

не могли б ви створити jsfiddle для вашого прикладу? тож ми можемо вам допомогти
— Уаді


9

Спробуйте нижче сегмент коду, я вже пробував сам:

#your-div {
    background: url("your-image-link") no-repeat;
    background-size: cover;
    background-clip: border-box;
}

Ласкаво просимо до Stack Overflow! Хоча ця відповідь, ймовірно, правильна і корисна, бажано, якщо ви додасте до неї якесь пояснення, щоб пояснити, як це допомагає вирішити проблему. Це стає особливо корисним у майбутньому, якщо відбудеться зміна (можливо, не пов’язана), яка призведе до того, що вона перестане працювати, і користувачі повинні зрозуміти, як це колись працювало.
— Kevin Brown


6

Це буде працювати як шарм.

background-image:url("http://assets.toptal.io/uploads/blog/category/logo/4/php.png");
background-repeat: no-repeat;
background-size: contain;

Дякую. Шукав спеціально для цього. Зробив це роки тому і забув.
— Олексій Рогачевський

містять не охоплює весь div. Тож обкладинка, здається, є тим, що шукає op.
— павутини

0
  1. Я погоджуюся з прикладом Йоссі, розтягніть зображення відповідно до div, але дещо інакше (без фонового зображення, оскільки це трохи негнучко в css 2.1). Показати повне зображення:

    <div id="yourdiv">
        <img id="theimage" src="image.jpg" alt="" />
    </div>
    
    #yourdiv img {
        width:100%;
      /*height will be automatic to remain aspect ratio*/
    }
    
  2. Показати частину зображення, використовуючи положення фону:

    #yourdiv 
    {
        background-image: url(image.jpg);
        background-repeat: no-repeat;
        background-position: 10px 25px;
    }
    
  3. Так само, як і перша частина (1), зображення буде масштабовано до div, настільки велике чи менше буде працювати обидва

  4. Так само, як у йосі.


помилка, форматування мого повідомлення не спрацювало? Я використав піктограму на панелі інструментів ... :(
— Bazzz,

я пробував це раніше, і тепер теж ... якщо розмір зображення 100px 100px, а div має розмір 400px 400px, тоді його закріплюють у верхньому куті. найновіші браузери safari
— Aakash Sahai

Ось приклад: jsfiddle.net/9mawE/1 Ширина div становить 150 пікселів. Логотип Google має ширину більше 150 пікселів, але його масштаб зменшується відповідно до div. Значок Google Earth має ширину менше 150 пікселів і масштабується відповідно до div шириною 150 пікселів, розмір фону не працює в IE 8, оскільки це CSS 3, який досі не підтримується.
— Bazzz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.