Страницы

Поиск по вопросам

пятница, 24 мая 2019 г.

Вставить текст в border CSS HTML

Мне нужно вставить текст по центру в верхнюю и нижнюю границу, которые будут иметь фоновое изображение позади них. Это будет на каждой странице. Я могу добиться этого с помощью CSS?
Пожалуйста, посмотрите скриншот того, что я имею в виду:

Граница должна быть белого цвета, 3 пикселя в ширину, а шрифт - Basis Grotesque Medium.
Я надеюсь начать с редактирования темы WordPress.
Надеюсь, что на этот вопрос не был получен ответ в другом месте. Я пытался искать, но не мог найти то, что мне нужно.
Прежде чем идти вперед и начать строить этот сайт, не могли бы вы сказать мне, если это возможно, как я могу достигнуть этого?
Источник: Insert text in border CSS HTML


Ответ

Добавлю свои 5 копеек...
body { background-image: url(https://avatars.mds.yandex.net/get-pdb/1016956/27ec7a52-f169-49d8-b895-10a84386bb8b/s1200); background-repeat: no-repeat; } fieldset { border: 3px solid white; border-bottom: none; color: white; } fieldset+fieldset { transform: rotatex(180deg); } fieldset+fieldset>legend { transform: rotatex(180deg); } fieldset>p:last-child { margin-bottom: 0; }

Lorem

...content...

Ipsum

Долгая загрузка сайта

Сижу на хостинге, и у некоторых пользователей очень долгая загрузка сайта. Разбирались, и нашли почему такая проблема, но не нашли решения.
На сайт подключается стиль стандартным способом:

В стиле всего 79 строчек, но самую большую нагрузку в стилемов файле беру изображения:
background: url(../images/bg.jpg);
И вот каждая картинка грузит около 3-5 секунд (весом 900кб).
Не понимаем, с чем связана эта проблема, у 95% пользователей все окей, а у остальных 5% - такая вот беда...
При прямом открытии картинки по URL, эту картинку грузит все равно те же 5 секунд, а остальные - шустро (200мс в среднем).
В какую сторону стоит копать в такой ситуации?


Ответ

Я бы посоветовал вам оптимизировать весь статический контент на сайте.
Сжатие графики
В вашем случае кроме сжатия стилей и скриптов посоветую сжимать и графику. К примеру, картинки можно легко сжать без потери качества только за счет удаление exif-данных. На реальном сайте можно сократить размер картинок в среднем на 70%, что на современном сайте равняется примерно 4 МБ. Пример на gulp
var gulp = require('gulp'), imagemin = require('gulp-imagemin'), imageminJR = require('imagemin-jpeg-recompress'), imageminSvgo = require('imagemin-svgo');
// Optimizing images gulp.task('imagemin', function() { gulp.src('./img/**/*') .pipe(imagemin([ imageminJR({ method: 'ms-ssim' }), imageminSvgo({ plugins: [ {removeViewBox: false} ] }) ])) .pipe(gulp.dest('./public/img/')) });
А для браузеров, которые понимают легковесный формат webp (формат разработан Google), можно сделать еще такой вариант изображений:
var gulp = require('gulp'), webp = require('gulp-webp');
// Generate Webp gulp.task('webp', function() { gulp.src('./img/**/*') .pipe(webp()) .pipe(gulp.dest('./public/img/')) });
Оптимизация скриптов
Сперва объедините все скрипты в один файл и минифицируйте их. Это помет сократить количество HTTP-запросов и размер файлов:
var gulp = require('gulp'), concat = require('gulp-concat'), uglify = require('gulp-uglify');
// Concat JS gulp.task('js', function(){ gulp.src([ './js/jquery.js', './js/wow.js', './js/menu.js', './js/scrollspy.js', './js/main.js', './js/temp/contact.bundled.js', './js/owl.carousel.js' ]) .pipe(concat('script.js')) .pipe(uglify()) .pipe(gulp.dest('./public/js/')) });
Оптимизация стилей
Кроме обычной минификации стилей можно использовать и продвинутую - объединять дубликаты классов и @media. Пример на gulp из моего [web-starter-kit][1]:
var gulp = require('gulp'), stylus = require('gulp-stylus'),
// Минифицирует CSS, объединяет классы. Не ломает CSS, в отличие от cssnano, который, к примеру, может неправильно выставлять z-index csso = require('gulp-csso'),
// Объединяет все @media cmq = require('gulp-combine-mq'),
// Сокращает CSS-селекторы gs = require('gulp-selectors'),
// Проставляет вендорные префиксы autoprefixer = require('gulp-autoprefixer'),
livereload = require('gulp-livereload'), nib = require('nib');
// Compiling Stylus in CSS gulp.task('css', function() { gulp.src('./styl/*.styl') .pipe(stylus({ use: nib() })) .pipe(cmq()) .pipe(csso()) .pipe(autoprefixer('last 3 versions')) .pipe(gulp.dest('./public/css/')) });
А если совсем делать нечего, то можно еще и селекторы сократить:
// Minify selectors gulp.task('gs', function() { var ignores = { classes: ['active', 'menu', 'nav', 'slide', 'error', 'form-control', 'loader', 'showLoader', 'fadeLoader', 'webp', 'wow', 'owl-*', 'i-*'], ids: '*' }; gulp.src(['./public/**/*.css', './public/**/*.html']) .pipe(gs.run({}, ignores)) .pipe(gulp.dest('./public/')) });
Кстати, наверняка у вас есть классы, добавляющиеся через JS, поэтому предварительно стоит все такие классы вынести в переменную ignores
Кеширование статики на стороне пользователя
Также бы посоветовал кешировать скрипты и стили на стороне пользователя, чтобы исключить их повторную загрузку, если они не изменились:
Header set Cache-Control "max-age=2592000"
И включить gzip сжатие на сервере:
# сжатие text, html, javascript, css, xml: AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript

Регулярное выражение для возврата первого (до пробела) слова строки

Пробовал сделать вот так:
string pattern = @"^\s+"; Regex regex = new Regex(pattern, RegexOptions.Singleline);
но когда пытаюсь выполнить
Match match = regex.Match("list command");
мне возвращает ""


Ответ

Скорее всего, вы просто перепутали большую и маленькую S
\s - это пробельный символ
\S - это любой символ кроме пробельного, нужно написать так:
^\S+
или для верности:
^\S+\s

помогите разобратьсяс админкой на laravel 5.3

Мне нужно сделать админку на laravel... Подключил sleepingowl 4! Делаю по данному видеоуроку (https://www.youtube.com/watch?v=ca4zn71n4BI), по инструкции с официального сайта совы ВСЕ данные повносил: файл composer.json:
{... "require": { ... "laravelrus/sleepingowl": "4.*@dev" } }
файл config/app.php:
'providers' => [ ... SleepingOwl\Admin\Providers\SleepingOwlServiceProvider::class, App\Providers\AppServiceProvider::class, ... ]
файл .env:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_DATABASE=laravel5 DB_USERNAME=root DB_PASSWORD=root
Ввожу в адресную строку http://blog.laravel.com/admin (как сказано в официальных доках http://sleepingowladmin.ru/docs/configuration) выдает:
Not Found
The requested URL /admin was not found on this server. Apache/2.4.18 (Ubuntu) Server at blog.laravel.com Port 80
Логи апача говорят :
127.0.0.1 - - [21/Feb/2017:13:01:23 +0200] "GET /admin HTTP/1.1" 404 502 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0"
Помогите настроить админку!
Ссылка на Github:
https://github.com/AlexBukreyev/blog.laravel


Ответ

Все прекрасно, просто пропишите Route:
/routes/web.php

Анимация заголовка вдоль края страницы

В учебнике написана задача:
Создайте собственную анимацию. Используйте setInterval для анимации заголовка h1, двигая его по квадрату вдоль краев страницы.
Текст двигаю вправо и вниз, а дальше никак, помогите начинающему
var leftOffset = 0; var topOffset = 0; var moveHeading = function () { $("#heading").offset({ left: leftOffset, top: topOffset }); leftOffset++; if (leftOffset > 200) { leftOffset = 200; topOffset++; if (topOffset > 200) { topOffset = 200; } } }; setInterval(moveHeading, 30) move

Привет, мир!



Ответ

Вот работающий пример
move

Привет, мир!


Переезд с mercurial на git

Здравствуйте! Есть большая проблема с переездом на git. Почему-то переезжает только одна ветка, а их полно... Использую TortoiseHg с плагином hggit. В hgrc меняю только path. Прошу помочь в этом вопросе.


Ответ

Для пингвина лучше сделать вот так:
Есть инструмент hg-fast-export
Его можно найти здесь:
git clone http://repo.or.cz/r/fast-export.git /tmp/fast-export
Нужно получить mercurial репу:
hg clone /tmp/hg-repo
Далее нужно создать файл соответствия авторов.
cd /tmp/hg-repo hg log | grep user: | sort | uniq | sed 's/user: *//' > ../authors
В /tmp/authors будет примерно следующее содержимое:
bob bob@localhost bob bob jones company com> Bob Jones Joe Smith
В примере выше, один и тот же человек (Боб) вносил изменения под пятью различными именами, лишь одно из которых правильное, а одно и вовсе не соответствует формату Git. hg-fast-export позволяет быстро исправить ситуацию, добавив ={new name and email address} к каждой строке, которую мы хотим изменить; чтобы оставить имя как есть, просто удалите нужные строки. Если же все имена выглядят хорошо, этот файл и вовсе не потребуется. В нашем примере мы хотим чтобы данные выглядели так:
bob=Bob Jones bob@localhost=Bob Jones bob jones company com>=Bob Jones bob =Bob Jones
Затем нужно создать Git репозиторий и запустить экспорт:
git init /tmp/converted cd /tmp/converted /tmp/fast-export/hg-fast-export.sh -r /tmp/hg-repo -A /tmp/authors
Флаг -r указывает на подлежащий конвертации Mercurial репозиторий, а флаг -A задаёт файл с соответствиями между авторами. Скрипт пробегается по наборам изменений Mercurial и преобразует их в скрипт для fast-import в Git. И отправляем изменение в репу гита:
git remote add origin git@my-git-server:myrepository.git git push origin --all
Для винды почти так же только немного другие команды:
cd c:\projects hg clone hg-repo git init converted git clone http://repo.or.cz/r/fast-export.git
Отредактировать c:\projects\fast-export\hg-fast-export.py. Начало этого скрипта нужно заменить на такое:
#!/usr/bin/env python
# Copyright (c) 2007, 2008 Rocco Rutte and others. # License: MIT
import sys
# import mercurial libraries from zip: sys.path.append(r'C:\Program Files (x86)\Mercurial\library.zip')
from mercurial import node from hg2git import setup_repo, fixup_user, get_branch, get_changeset from hg2git import load_cache, save_cache, get_git_sha1, set_default_branch, set_origin_name from optparse import OptionParser import re import os
Скопировать fast-export в converted игнорируя .git папку. Далее: cd converted и создайте тут файл authors.txt по аналогии из linux версии.
И hg-fast-export.sh -r c:\projects\hg-repo -A authors.txt Готово. Дальше можно заливать гит репу на сервер.

Зависает страница от большого количества

Ребят, добрый день! Нужна идея. Есть страница в которой находится такой список:

  • Заголовок
  • Заголовок
  • Заголовок
  • Заголовок
  • Заголовок
  • Заголовок
  • Заголовок
  • Заголовок
  • Заголовок
  • Заголовок
  • Заголовок

Ещё есть кусочек Jquery:
$(document).ready(function(){ $('video').hide(); }); $(".list-item").click(function() { $(this).next("video").slideToggle(1000); } );
Который позволяет кликнув по заголовку(элементу списка) развернуть находящееся под ним видео, и свернуть его, если оно уже развернуто.
Этот список будет выводиться посредством php. Но проблема в том, что когда страница открывается, то браузер очень сильно виснет. Можно ли как-то оптимизировать все это? Я думал присваивать тегу video значение атрибута src, только после клика по заголовку, но не знаю как это сделать, ведь пути к файлам будут доставаться из Бд средствами php.


Ответ

Надо изначально в php выводить видео с атрибутом display: none;