Я новичок в приложении mvc и создании сайта в режиме просмотра aspx. У меня есть файл css в mycss/style.css, а изображения - в images/img1.jpg. в чем разница между
background: url("../images/img1.jpg") no-repeat;
and background: url("~/images/img1.jpg") no-repeat;
в стиле.css
background: url("../images/img1.jpg") no-repeat;
Вышеуказанное относится к текущему местоположению. Он поднимается на одну папку, затем вниз до папки с изображениями и, наконец, получает файл изображения.
background: url("~/images/img1.jpg") no-repeat;
Вышеуказанное недействительно. Тильда означает начало в корне сайта. Но CSS не поддерживает этот синтаксис. Эквивалентом будет background: url("/images/img1.jpg") no-repeat;
,
В зависимости от вашего макета сайта оба будут работать. Я склонен использовать корневые относительные пути, потому что, если вы переместите свой CSS файл в другую папку, он может сломаться по пути относительно текущего местоположения.
Для хорошего обсуждения относительной относительной vs-позиции относительно абсолютной см. Эту статью.
Вы также можете написать так background: url("images/img1.jpg") no-repeat;
без "префикса", что означает "изображения в папке с изображениями ".
Это было бы правильно.
background: url("../images/img1.jpg") no-repeat;
~
не будет правильной?
~/
будет работать в файлах CSS.