no tabs
This commit is contained in:
@@ -120,88 +120,88 @@ git submodule add https://git.seemsleg.it/pub/cssjs-func-lib cssjs
|
|||||||
<script src="/cssjs/ckeditor.js"></script>
|
<script src="/cssjs/ckeditor.js"></script>
|
||||||
|
|
||||||
<script>ClassicEditor
|
<script>ClassicEditor
|
||||||
.create( document.querySelector( '.editor' ), {
|
.create( document.querySelector( '.editor' ), {
|
||||||
|
|
||||||
toolbar: {
|
toolbar: {
|
||||||
items: [
|
items: [
|
||||||
'heading',
|
'heading',
|
||||||
'|',
|
'|',
|
||||||
'bold',
|
'bold',
|
||||||
'italic',
|
'italic',
|
||||||
'underline',
|
'underline',
|
||||||
'link',
|
'link',
|
||||||
'removeFormat',
|
'removeFormat',
|
||||||
'fontSize',
|
'fontSize',
|
||||||
'fontFamily',
|
'fontFamily',
|
||||||
'|',
|
'|',
|
||||||
'bulletedList',
|
'bulletedList',
|
||||||
'numberedList',
|
'numberedList',
|
||||||
'todoList',
|
'todoList',
|
||||||
'|',
|
'|',
|
||||||
'indent',
|
'indent',
|
||||||
'outdent',
|
'outdent',
|
||||||
'alignment',
|
'alignment',
|
||||||
'horizontalLine',
|
'horizontalLine',
|
||||||
'|',
|
'|',
|
||||||
'imageUpload',
|
'imageUpload',
|
||||||
'imageInsert',
|
'imageInsert',
|
||||||
'blockQuote',
|
'blockQuote',
|
||||||
'insertTable',
|
'insertTable',
|
||||||
'mediaEmbed',
|
'mediaEmbed',
|
||||||
'undo',
|
'undo',
|
||||||
'redo',
|
'redo',
|
||||||
'|',
|
'|',
|
||||||
'codeBlock',
|
'codeBlock',
|
||||||
'exportPdf',
|
'exportPdf',
|
||||||
'htmlEmbed',
|
'htmlEmbed',
|
||||||
'exportWord',
|
'exportWord',
|
||||||
'highlight'
|
'highlight'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
language: 'de',
|
language: 'de',
|
||||||
image: {
|
image: {
|
||||||
toolbar: [
|
toolbar: [
|
||||||
'imageTextAlternative',
|
'imageTextAlternative',
|
||||||
'|',
|
'|',
|
||||||
'imageStyle:full',
|
'imageStyle:full',
|
||||||
'imageStyle:side',
|
'imageStyle:side',
|
||||||
'imageStyle:alignLeft', 'imageStyle:alignCenter', 'imageStyle:alignRight',
|
'imageStyle:alignLeft', 'imageStyle:alignCenter', 'imageStyle:alignRight',
|
||||||
'|',
|
'|',
|
||||||
'imageResize',
|
'imageResize',
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
table: {
|
table: {
|
||||||
contentToolbar: [
|
contentToolbar: [
|
||||||
'tableColumn',
|
'tableColumn',
|
||||||
'tableRow',
|
'tableRow',
|
||||||
'mergeTableCells'
|
'mergeTableCells'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
licenseKey: '',
|
licenseKey: '',
|
||||||
|
|
||||||
} )
|
} )
|
||||||
.then( editor => {
|
.then( editor => {
|
||||||
window.editor = editor;
|
window.editor = editor;
|
||||||
} )
|
} )
|
||||||
.catch( error => {
|
.catch( error => {
|
||||||
console.error( 'Oops, something went wrong!' );
|
console.error( 'Oops, something went wrong!' );
|
||||||
console.error( 'Please, report the following error on https://github.com/ckeditor/ckeditor5/issues with the build id and the error stack trace:' );
|
console.error( 'Please, report the following error on https://github.com/ckeditor/ckeditor5/issues with the build id and the error stack trace:' );
|
||||||
console.warn( 'Build id: p276tlu14l98-tj7z79o4qxsd' );
|
console.warn( 'Build id: p276tlu14l98-tj7z79o4qxsd' );
|
||||||
console.error( error );
|
console.error( error );
|
||||||
} );
|
} );
|
||||||
</script>
|
</script>
|
||||||
```
|
```
|
||||||
|
|
||||||
Heading
|
Heading
|
||||||
```
|
```
|
||||||
...
|
...
|
||||||
heading: {
|
heading: {
|
||||||
options: [
|
options: [
|
||||||
{ model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },
|
{ model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },
|
||||||
{ model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },
|
{ model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },
|
||||||
{ model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' }
|
{ model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
+90
-90
@@ -9,94 +9,94 @@
|
|||||||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.html2canvas = factory());
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.html2canvas = factory());
|
||||||
}(this, (function () { 'use strict';
|
}(this, (function () { 'use strict';
|
||||||
|
|
||||||
/*! *****************************************************************************
|
/*! *****************************************************************************
|
||||||
Copyright (c) Microsoft Corporation.
|
Copyright (c) Microsoft Corporation.
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
Permission to use, copy, modify, and/or distribute this software for any
|
||||||
purpose with or without fee is hereby granted.
|
purpose with or without fee is hereby granted.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
PERFORMANCE OF THIS SOFTWARE.
|
||||||
***************************************************************************** */
|
***************************************************************************** */
|
||||||
/* global Reflect, Promise */
|
/* global Reflect, Promise */
|
||||||
|
|
||||||
var extendStatics = function(d, b) {
|
var extendStatics = function(d, b) {
|
||||||
extendStatics = Object.setPrototypeOf ||
|
extendStatics = Object.setPrototypeOf ||
|
||||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
||||||
return extendStatics(d, b);
|
return extendStatics(d, b);
|
||||||
};
|
};
|
||||||
|
|
||||||
function __extends(d, b) {
|
function __extends(d, b) {
|
||||||
if (typeof b !== "function" && b !== null)
|
if (typeof b !== "function" && b !== null)
|
||||||
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
||||||
extendStatics(d, b);
|
extendStatics(d, b);
|
||||||
function __() { this.constructor = d; }
|
function __() { this.constructor = d; }
|
||||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||||
}
|
}
|
||||||
|
|
||||||
var __assign = function() {
|
var __assign = function() {
|
||||||
__assign = Object.assign || function __assign(t) {
|
__assign = Object.assign || function __assign(t) {
|
||||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||||
s = arguments[i];
|
s = arguments[i];
|
||||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
||||||
}
|
}
|
||||||
return t;
|
return t;
|
||||||
};
|
};
|
||||||
return __assign.apply(this, arguments);
|
return __assign.apply(this, arguments);
|
||||||
};
|
};
|
||||||
|
|
||||||
function __awaiter(thisArg, _arguments, P, generator) {
|
function __awaiter(thisArg, _arguments, P, generator) {
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function __generator(thisArg, body) {
|
function __generator(thisArg, body) {
|
||||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||||
function step(op) {
|
function step(op) {
|
||||||
if (f) throw new TypeError("Generator is already executing.");
|
if (f) throw new TypeError("Generator is already executing.");
|
||||||
while (_) try {
|
while (_) try {
|
||||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||||
switch (op[0]) {
|
switch (op[0]) {
|
||||||
case 0: case 1: t = op; break;
|
case 0: case 1: t = op; break;
|
||||||
case 4: _.label++; return { value: op[1], done: false };
|
case 4: _.label++; return { value: op[1], done: false };
|
||||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||||
default:
|
default:
|
||||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||||
if (t[2]) _.ops.pop();
|
if (t[2]) _.ops.pop();
|
||||||
_.trys.pop(); continue;
|
_.trys.pop(); continue;
|
||||||
}
|
}
|
||||||
op = body.call(thisArg, _);
|
op = body.call(thisArg, _);
|
||||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function __spreadArray(to, from, pack) {
|
function __spreadArray(to, from, pack) {
|
||||||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
||||||
if (ar || !(i in from)) {
|
if (ar || !(i in from)) {
|
||||||
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
||||||
ar[i] = from[i];
|
ar[i] = from[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return to.concat(ar || from);
|
return to.concat(ar || from);
|
||||||
}
|
}
|
||||||
|
|
||||||
var Bounds = /** @class */ (function () {
|
var Bounds = /** @class */ (function () {
|
||||||
@@ -701,7 +701,7 @@
|
|||||||
(next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||
|
(next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||
|
||||||
// ( OP | HY ) × NU
|
// ( OP | HY ) × NU
|
||||||
([OP, HY].indexOf(current) !== -1 && next === NU) ||
|
([OP, HY].indexOf(current) !== -1 && next === NU) ||
|
||||||
// NU × (NU | SY | IS)
|
// NU × (NU | SY | IS)
|
||||||
(current === NU && [NU, SY, IS].indexOf(next) !== -1)) {
|
(current === NU && [NU, SY, IS].indexOf(next) !== -1)) {
|
||||||
return BREAK_NOT_ALLOWED$1;
|
return BREAK_NOT_ALLOWED$1;
|
||||||
}
|
}
|
||||||
@@ -7010,7 +7010,7 @@
|
|||||||
case 4:
|
case 4:
|
||||||
_i++;
|
_i++;
|
||||||
return [3 /*break*/, 2];
|
return [3 /*break*/, 2];
|
||||||
case 5:
|
case 5:
|
||||||
// 3. For all its in-flow, non-positioned, block-level descendants in tree order:
|
// 3. For all its in-flow, non-positioned, block-level descendants in tree order:
|
||||||
return [4 /*yield*/, this.renderNodeContent(stack.element)];
|
return [4 /*yield*/, this.renderNodeContent(stack.element)];
|
||||||
case 6:
|
case 6:
|
||||||
|
|||||||
Vendored
+21
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Vendored
+22
-22
@@ -1,7 +1,7 @@
|
|||||||
(function($){
|
(function($){
|
||||||
|
|
||||||
$.fn.autoResize = function(options) {
|
$.fn.autoResize = function(options) {
|
||||||
|
|
||||||
// Just some abstracted details,
|
// Just some abstracted details,
|
||||||
// to make plugin users happy:
|
// to make plugin users happy:
|
||||||
var settings = $.extend({
|
var settings = $.extend({
|
||||||
@@ -12,28 +12,28 @@
|
|||||||
extraSpace : 20,
|
extraSpace : 20,
|
||||||
limit: 1000
|
limit: 1000
|
||||||
}, options);
|
}, options);
|
||||||
|
|
||||||
// Only textarea's auto-resize:
|
// Only textarea's auto-resize:
|
||||||
this.filter('textarea').each(function(){
|
this.filter('textarea').each(function(){
|
||||||
|
|
||||||
// Get rid of scrollbars and disable WebKit resizing:
|
// Get rid of scrollbars and disable WebKit resizing:
|
||||||
var textarea = $(this).css({resize:'none','overflow-y':'hidden'}),
|
var textarea = $(this).css({resize:'none','overflow-y':'hidden'}),
|
||||||
|
|
||||||
// Cache original height, for use later:
|
// Cache original height, for use later:
|
||||||
origHeight = textarea.height(),
|
origHeight = textarea.height(),
|
||||||
|
|
||||||
// Need clone of textarea, hidden off screen:
|
// Need clone of textarea, hidden off screen:
|
||||||
clone = (function(){
|
clone = (function(){
|
||||||
|
|
||||||
// Properties which may effect space taken up by chracters:
|
// Properties which may effect space taken up by chracters:
|
||||||
var props = ['height','width','lineHeight','textDecoration','letterSpacing'],
|
var props = ['height','width','lineHeight','textDecoration','letterSpacing'],
|
||||||
propOb = {};
|
propOb = {};
|
||||||
|
|
||||||
// Create object of styles to apply:
|
// Create object of styles to apply:
|
||||||
$.each(props, function(i, prop){
|
$.each(props, function(i, prop){
|
||||||
propOb[prop] = textarea.css(prop);
|
propOb[prop] = textarea.css(prop);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Clone the actual textarea removing unique properties
|
// Clone the actual textarea removing unique properties
|
||||||
// and insert before original textarea:
|
// and insert before original textarea:
|
||||||
return textarea.clone().removeAttr('id').removeAttr('name').css({
|
return textarea.clone().removeAttr('id').removeAttr('name').css({
|
||||||
@@ -41,22 +41,22 @@
|
|||||||
top: 0,
|
top: 0,
|
||||||
left: -9999
|
left: -9999
|
||||||
}).css(propOb).attr('tabIndex','-1').insertBefore(textarea);
|
}).css(propOb).attr('tabIndex','-1').insertBefore(textarea);
|
||||||
|
|
||||||
})(),
|
})(),
|
||||||
lastScrollTop = null,
|
lastScrollTop = null,
|
||||||
updateSize = function() {
|
updateSize = function() {
|
||||||
|
|
||||||
// Prepare the clone:
|
// Prepare the clone:
|
||||||
clone.height(0).val($(this).val()).scrollTop(10000);
|
clone.height(0).val($(this).val()).scrollTop(10000);
|
||||||
|
|
||||||
// Find the height of text:
|
// Find the height of text:
|
||||||
var scrollTop = Math.max(clone.scrollTop(), origHeight) + settings.extraSpace,
|
var scrollTop = Math.max(clone.scrollTop(), origHeight) + settings.extraSpace,
|
||||||
toChange = $(this).add(clone);
|
toChange = $(this).add(clone);
|
||||||
|
|
||||||
// Don't do anything if scrollTip hasen't changed:
|
// Don't do anything if scrollTip hasen't changed:
|
||||||
if (lastScrollTop === scrollTop) { return; }
|
if (lastScrollTop === scrollTop) { return; }
|
||||||
lastScrollTop = scrollTop;
|
lastScrollTop = scrollTop;
|
||||||
|
|
||||||
// Check for limit:
|
// Check for limit:
|
||||||
if ( scrollTop >= settings.limit ) {
|
if ( scrollTop >= settings.limit ) {
|
||||||
$(this).css('overflow-y','');
|
$(this).css('overflow-y','');
|
||||||
@@ -64,27 +64,27 @@
|
|||||||
}
|
}
|
||||||
// Fire off callback:
|
// Fire off callback:
|
||||||
settings.onResize.call(this);
|
settings.onResize.call(this);
|
||||||
|
|
||||||
// Either animate or directly apply height:
|
// Either animate or directly apply height:
|
||||||
settings.animate && textarea.css('display') === 'block' ?
|
settings.animate && textarea.css('display') === 'block' ?
|
||||||
toChange.stop().animate({height:scrollTop}, settings.animateDuration, settings.animateCallback)
|
toChange.stop().animate({height:scrollTop}, settings.animateDuration, settings.animateCallback)
|
||||||
: toChange.height(scrollTop);
|
: toChange.height(scrollTop);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Bind namespaced handlers to appropriate events:
|
// Bind namespaced handlers to appropriate events:
|
||||||
textarea
|
textarea
|
||||||
.unbind('.dynSiz')
|
.unbind('.dynSiz')
|
||||||
.bind('keyup.dynSiz', updateSize)
|
.bind('keyup.dynSiz', updateSize)
|
||||||
.bind('keydown.dynSiz', updateSize)
|
.bind('keydown.dynSiz', updateSize)
|
||||||
.bind('change.dynSiz', updateSize);
|
.bind('change.dynSiz', updateSize);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Chain:
|
// Chain:
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
+6
-6
@@ -1,8 +1,8 @@
|
|||||||
.parallax{
|
.parallax{
|
||||||
height: 600px;
|
height: 600px;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-attachment: fixed;
|
background-attachment: fixed;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-position: 100% auto;
|
background-position: 100% auto;
|
||||||
position:relative;
|
position:relative;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user