Edit File by line
/home/barbar84/www/wp-inclu.../js/codemirr...
File: csslint.js
CSSLint.Util.forEach(this.ignore, function (range) {
[8000] Fix | Delete
if (range[0] <= line && line <= range[1]) {
[8001] Fix | Delete
ignore = true;
[8002] Fix | Delete
}
[8003] Fix | Delete
});
[8004] Fix | Delete
if (ignore) {
[8005] Fix | Delete
return;
[8006] Fix | Delete
}
[8007] Fix | Delete
[8008] Fix | Delete
this.messages.push({
[8009] Fix | Delete
type : this.ruleset[rule.id] === 2 ? "error" : "warning",
[8010] Fix | Delete
line : line,
[8011] Fix | Delete
col : col,
[8012] Fix | Delete
message : message,
[8013] Fix | Delete
evidence: this.lines[line-1],
[8014] Fix | Delete
rule : rule
[8015] Fix | Delete
});
[8016] Fix | Delete
},
[8017] Fix | Delete
[8018] Fix | Delete
/**
[8019] Fix | Delete
* Report some informational text.
[8020] Fix | Delete
* @param {String} message The message to store.
[8021] Fix | Delete
* @param {int} line The line number.
[8022] Fix | Delete
* @param {int} col The column number.
[8023] Fix | Delete
* @param {Object} rule The rule this message relates to.
[8024] Fix | Delete
* @method info
[8025] Fix | Delete
*/
[8026] Fix | Delete
info: function(message, line, col, rule) {
[8027] Fix | Delete
"use strict";
[8028] Fix | Delete
this.messages.push({
[8029] Fix | Delete
type : "info",
[8030] Fix | Delete
line : line,
[8031] Fix | Delete
col : col,
[8032] Fix | Delete
message : message,
[8033] Fix | Delete
evidence: this.lines[line-1],
[8034] Fix | Delete
rule : rule
[8035] Fix | Delete
});
[8036] Fix | Delete
},
[8037] Fix | Delete
[8038] Fix | Delete
/**
[8039] Fix | Delete
* Report some rollup error information.
[8040] Fix | Delete
* @param {String} message The message to store.
[8041] Fix | Delete
* @param {Object} rule The rule this message relates to.
[8042] Fix | Delete
* @method rollupError
[8043] Fix | Delete
*/
[8044] Fix | Delete
rollupError: function(message, rule) {
[8045] Fix | Delete
"use strict";
[8046] Fix | Delete
this.messages.push({
[8047] Fix | Delete
type : "error",
[8048] Fix | Delete
rollup : true,
[8049] Fix | Delete
message : message,
[8050] Fix | Delete
rule : rule
[8051] Fix | Delete
});
[8052] Fix | Delete
},
[8053] Fix | Delete
[8054] Fix | Delete
/**
[8055] Fix | Delete
* Report some rollup warning information.
[8056] Fix | Delete
* @param {String} message The message to store.
[8057] Fix | Delete
* @param {Object} rule The rule this message relates to.
[8058] Fix | Delete
* @method rollupWarn
[8059] Fix | Delete
*/
[8060] Fix | Delete
rollupWarn: function(message, rule) {
[8061] Fix | Delete
"use strict";
[8062] Fix | Delete
this.messages.push({
[8063] Fix | Delete
type : "warning",
[8064] Fix | Delete
rollup : true,
[8065] Fix | Delete
message : message,
[8066] Fix | Delete
rule : rule
[8067] Fix | Delete
});
[8068] Fix | Delete
},
[8069] Fix | Delete
[8070] Fix | Delete
/**
[8071] Fix | Delete
* Report a statistic.
[8072] Fix | Delete
* @param {String} name The name of the stat to store.
[8073] Fix | Delete
* @param {Variant} value The value of the stat.
[8074] Fix | Delete
* @method stat
[8075] Fix | Delete
*/
[8076] Fix | Delete
stat: function(name, value) {
[8077] Fix | Delete
"use strict";
[8078] Fix | Delete
this.stats[name] = value;
[8079] Fix | Delete
}
[8080] Fix | Delete
};
[8081] Fix | Delete
[8082] Fix | Delete
// expose for testing purposes
[8083] Fix | Delete
CSSLint._Reporter = Reporter;
[8084] Fix | Delete
[8085] Fix | Delete
/*
[8086] Fix | Delete
* Utility functions that make life easier.
[8087] Fix | Delete
*/
[8088] Fix | Delete
CSSLint.Util = {
[8089] Fix | Delete
/*
[8090] Fix | Delete
* Adds all properties from supplier onto receiver,
[8091] Fix | Delete
* overwriting if the same name already exists on
[8092] Fix | Delete
* receiver.
[8093] Fix | Delete
* @param {Object} The object to receive the properties.
[8094] Fix | Delete
* @param {Object} The object to provide the properties.
[8095] Fix | Delete
* @return {Object} The receiver
[8096] Fix | Delete
*/
[8097] Fix | Delete
mix: function(receiver, supplier) {
[8098] Fix | Delete
"use strict";
[8099] Fix | Delete
var prop;
[8100] Fix | Delete
[8101] Fix | Delete
for (prop in supplier) {
[8102] Fix | Delete
if (supplier.hasOwnProperty(prop)) {
[8103] Fix | Delete
receiver[prop] = supplier[prop];
[8104] Fix | Delete
}
[8105] Fix | Delete
}
[8106] Fix | Delete
[8107] Fix | Delete
return prop;
[8108] Fix | Delete
},
[8109] Fix | Delete
[8110] Fix | Delete
/*
[8111] Fix | Delete
* Polyfill for array indexOf() method.
[8112] Fix | Delete
* @param {Array} values The array to search.
[8113] Fix | Delete
* @param {Variant} value The value to search for.
[8114] Fix | Delete
* @return {int} The index of the value if found, -1 if not.
[8115] Fix | Delete
*/
[8116] Fix | Delete
indexOf: function(values, value) {
[8117] Fix | Delete
"use strict";
[8118] Fix | Delete
if (values.indexOf) {
[8119] Fix | Delete
return values.indexOf(value);
[8120] Fix | Delete
} else {
[8121] Fix | Delete
for (var i=0, len=values.length; i < len; i++) {
[8122] Fix | Delete
if (values[i] === value) {
[8123] Fix | Delete
return i;
[8124] Fix | Delete
}
[8125] Fix | Delete
}
[8126] Fix | Delete
return -1;
[8127] Fix | Delete
}
[8128] Fix | Delete
},
[8129] Fix | Delete
[8130] Fix | Delete
/*
[8131] Fix | Delete
* Polyfill for array forEach() method.
[8132] Fix | Delete
* @param {Array} values The array to operate on.
[8133] Fix | Delete
* @param {Function} func The function to call on each item.
[8134] Fix | Delete
* @return {void}
[8135] Fix | Delete
*/
[8136] Fix | Delete
forEach: function(values, func) {
[8137] Fix | Delete
"use strict";
[8138] Fix | Delete
if (values.forEach) {
[8139] Fix | Delete
return values.forEach(func);
[8140] Fix | Delete
} else {
[8141] Fix | Delete
for (var i=0, len=values.length; i < len; i++) {
[8142] Fix | Delete
func(values[i], i, values);
[8143] Fix | Delete
}
[8144] Fix | Delete
}
[8145] Fix | Delete
}
[8146] Fix | Delete
};
[8147] Fix | Delete
[8148] Fix | Delete
/*
[8149] Fix | Delete
* Rule: Don't use adjoining classes (.foo.bar).
[8150] Fix | Delete
*/
[8151] Fix | Delete
[8152] Fix | Delete
CSSLint.addRule({
[8153] Fix | Delete
[8154] Fix | Delete
// rule information
[8155] Fix | Delete
id: "adjoining-classes",
[8156] Fix | Delete
name: "Disallow adjoining classes",
[8157] Fix | Delete
desc: "Don't use adjoining classes.",
[8158] Fix | Delete
url: "https://github.com/CSSLint/csslint/wiki/Disallow-adjoining-classes",
[8159] Fix | Delete
browsers: "IE6",
[8160] Fix | Delete
[8161] Fix | Delete
// initialization
[8162] Fix | Delete
init: function(parser, reporter) {
[8163] Fix | Delete
"use strict";
[8164] Fix | Delete
var rule = this;
[8165] Fix | Delete
parser.addListener("startrule", function(event) {
[8166] Fix | Delete
var selectors = event.selectors,
[8167] Fix | Delete
selector,
[8168] Fix | Delete
part,
[8169] Fix | Delete
modifier,
[8170] Fix | Delete
classCount,
[8171] Fix | Delete
i, j, k;
[8172] Fix | Delete
[8173] Fix | Delete
for (i=0; i < selectors.length; i++) {
[8174] Fix | Delete
selector = selectors[i];
[8175] Fix | Delete
for (j=0; j < selector.parts.length; j++) {
[8176] Fix | Delete
part = selector.parts[j];
[8177] Fix | Delete
if (part.type === parser.SELECTOR_PART_TYPE) {
[8178] Fix | Delete
classCount = 0;
[8179] Fix | Delete
for (k=0; k < part.modifiers.length; k++) {
[8180] Fix | Delete
modifier = part.modifiers[k];
[8181] Fix | Delete
if (modifier.type === "class") {
[8182] Fix | Delete
classCount++;
[8183] Fix | Delete
}
[8184] Fix | Delete
if (classCount > 1){
[8185] Fix | Delete
reporter.report("Adjoining classes: "+selectors[i].text, part.line, part.col, rule);
[8186] Fix | Delete
}
[8187] Fix | Delete
}
[8188] Fix | Delete
}
[8189] Fix | Delete
}
[8190] Fix | Delete
}
[8191] Fix | Delete
});
[8192] Fix | Delete
}
[8193] Fix | Delete
[8194] Fix | Delete
});
[8195] Fix | Delete
[8196] Fix | Delete
/*
[8197] Fix | Delete
* Rule: Don't use width or height when using padding or border.
[8198] Fix | Delete
*/
[8199] Fix | Delete
CSSLint.addRule({
[8200] Fix | Delete
[8201] Fix | Delete
// rule information
[8202] Fix | Delete
id: "box-model",
[8203] Fix | Delete
name: "Beware of broken box size",
[8204] Fix | Delete
desc: "Don't use width or height when using padding or border.",
[8205] Fix | Delete
url: "https://github.com/CSSLint/csslint/wiki/Beware-of-box-model-size",
[8206] Fix | Delete
browsers: "All",
[8207] Fix | Delete
[8208] Fix | Delete
// initialization
[8209] Fix | Delete
init: function(parser, reporter) {
[8210] Fix | Delete
"use strict";
[8211] Fix | Delete
var rule = this,
[8212] Fix | Delete
widthProperties = {
[8213] Fix | Delete
border: 1,
[8214] Fix | Delete
"border-left": 1,
[8215] Fix | Delete
"border-right": 1,
[8216] Fix | Delete
padding: 1,
[8217] Fix | Delete
"padding-left": 1,
[8218] Fix | Delete
"padding-right": 1
[8219] Fix | Delete
},
[8220] Fix | Delete
heightProperties = {
[8221] Fix | Delete
border: 1,
[8222] Fix | Delete
"border-bottom": 1,
[8223] Fix | Delete
"border-top": 1,
[8224] Fix | Delete
padding: 1,
[8225] Fix | Delete
"padding-bottom": 1,
[8226] Fix | Delete
"padding-top": 1
[8227] Fix | Delete
},
[8228] Fix | Delete
properties,
[8229] Fix | Delete
boxSizing = false;
[8230] Fix | Delete
[8231] Fix | Delete
function startRule() {
[8232] Fix | Delete
properties = {};
[8233] Fix | Delete
boxSizing = false;
[8234] Fix | Delete
}
[8235] Fix | Delete
[8236] Fix | Delete
function endRule() {
[8237] Fix | Delete
var prop, value;
[8238] Fix | Delete
[8239] Fix | Delete
if (!boxSizing) {
[8240] Fix | Delete
if (properties.height) {
[8241] Fix | Delete
for (prop in heightProperties) {
[8242] Fix | Delete
if (heightProperties.hasOwnProperty(prop) && properties[prop]) {
[8243] Fix | Delete
value = properties[prop].value;
[8244] Fix | Delete
// special case for padding
[8245] Fix | Delete
if (!(prop === "padding" && value.parts.length === 2 && value.parts[0].value === 0)) {
[8246] Fix | Delete
reporter.report("Using height with " + prop + " can sometimes make elements larger than you expect.", properties[prop].line, properties[prop].col, rule);
[8247] Fix | Delete
}
[8248] Fix | Delete
}
[8249] Fix | Delete
}
[8250] Fix | Delete
}
[8251] Fix | Delete
[8252] Fix | Delete
if (properties.width) {
[8253] Fix | Delete
for (prop in widthProperties) {
[8254] Fix | Delete
if (widthProperties.hasOwnProperty(prop) && properties[prop]) {
[8255] Fix | Delete
value = properties[prop].value;
[8256] Fix | Delete
[8257] Fix | Delete
if (!(prop === "padding" && value.parts.length === 2 && value.parts[1].value === 0)) {
[8258] Fix | Delete
reporter.report("Using width with " + prop + " can sometimes make elements larger than you expect.", properties[prop].line, properties[prop].col, rule);
[8259] Fix | Delete
}
[8260] Fix | Delete
}
[8261] Fix | Delete
}
[8262] Fix | Delete
}
[8263] Fix | Delete
}
[8264] Fix | Delete
}
[8265] Fix | Delete
[8266] Fix | Delete
parser.addListener("startrule", startRule);
[8267] Fix | Delete
parser.addListener("startfontface", startRule);
[8268] Fix | Delete
parser.addListener("startpage", startRule);
[8269] Fix | Delete
parser.addListener("startpagemargin", startRule);
[8270] Fix | Delete
parser.addListener("startkeyframerule", startRule);
[8271] Fix | Delete
parser.addListener("startviewport", startRule);
[8272] Fix | Delete
[8273] Fix | Delete
parser.addListener("property", function(event) {
[8274] Fix | Delete
var name = event.property.text.toLowerCase();
[8275] Fix | Delete
[8276] Fix | Delete
if (heightProperties[name] || widthProperties[name]) {
[8277] Fix | Delete
if (!/^0\S*$/.test(event.value) && !(name === "border" && event.value.toString() === "none")) {
[8278] Fix | Delete
properties[name] = {
[8279] Fix | Delete
line: event.property.line,
[8280] Fix | Delete
col: event.property.col,
[8281] Fix | Delete
value: event.value
[8282] Fix | Delete
};
[8283] Fix | Delete
}
[8284] Fix | Delete
} else {
[8285] Fix | Delete
if (/^(width|height)/i.test(name) && /^(length|percentage)/.test(event.value.parts[0].type)) {
[8286] Fix | Delete
properties[name] = 1;
[8287] Fix | Delete
} else if (name === "box-sizing") {
[8288] Fix | Delete
boxSizing = true;
[8289] Fix | Delete
}
[8290] Fix | Delete
}
[8291] Fix | Delete
[8292] Fix | Delete
});
[8293] Fix | Delete
[8294] Fix | Delete
parser.addListener("endrule", endRule);
[8295] Fix | Delete
parser.addListener("endfontface", endRule);
[8296] Fix | Delete
parser.addListener("endpage", endRule);
[8297] Fix | Delete
parser.addListener("endpagemargin", endRule);
[8298] Fix | Delete
parser.addListener("endkeyframerule", endRule);
[8299] Fix | Delete
parser.addListener("endviewport", endRule);
[8300] Fix | Delete
}
[8301] Fix | Delete
[8302] Fix | Delete
});
[8303] Fix | Delete
[8304] Fix | Delete
/*
[8305] Fix | Delete
* Rule: box-sizing doesn't work in IE6 and IE7.
[8306] Fix | Delete
*/
[8307] Fix | Delete
[8308] Fix | Delete
CSSLint.addRule({
[8309] Fix | Delete
[8310] Fix | Delete
// rule information
[8311] Fix | Delete
id: "box-sizing",
[8312] Fix | Delete
name: "Disallow use of box-sizing",
[8313] Fix | Delete
desc: "The box-sizing properties isn't supported in IE6 and IE7.",
[8314] Fix | Delete
url: "https://github.com/CSSLint/csslint/wiki/Disallow-box-sizing",
[8315] Fix | Delete
browsers: "IE6, IE7",
[8316] Fix | Delete
tags: ["Compatibility"],
[8317] Fix | Delete
[8318] Fix | Delete
// initialization
[8319] Fix | Delete
init: function(parser, reporter) {
[8320] Fix | Delete
"use strict";
[8321] Fix | Delete
var rule = this;
[8322] Fix | Delete
[8323] Fix | Delete
parser.addListener("property", function(event) {
[8324] Fix | Delete
var name = event.property.text.toLowerCase();
[8325] Fix | Delete
[8326] Fix | Delete
if (name === "box-sizing") {
[8327] Fix | Delete
reporter.report("The box-sizing property isn't supported in IE6 and IE7.", event.line, event.col, rule);
[8328] Fix | Delete
}
[8329] Fix | Delete
});
[8330] Fix | Delete
}
[8331] Fix | Delete
[8332] Fix | Delete
});
[8333] Fix | Delete
[8334] Fix | Delete
/*
[8335] Fix | Delete
* Rule: Use the bulletproof @font-face syntax to avoid 404's in old IE
[8336] Fix | Delete
* (http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax)
[8337] Fix | Delete
*/
[8338] Fix | Delete
[8339] Fix | Delete
CSSLint.addRule({
[8340] Fix | Delete
[8341] Fix | Delete
// rule information
[8342] Fix | Delete
id: "bulletproof-font-face",
[8343] Fix | Delete
name: "Use the bulletproof @font-face syntax",
[8344] Fix | Delete
desc: "Use the bulletproof @font-face syntax to avoid 404's in old IE (http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax).",
[8345] Fix | Delete
url: "https://github.com/CSSLint/csslint/wiki/Bulletproof-font-face",
[8346] Fix | Delete
browsers: "All",
[8347] Fix | Delete
[8348] Fix | Delete
// initialization
[8349] Fix | Delete
init: function(parser, reporter) {
[8350] Fix | Delete
"use strict";
[8351] Fix | Delete
var rule = this,
[8352] Fix | Delete
fontFaceRule = false,
[8353] Fix | Delete
firstSrc = true,
[8354] Fix | Delete
ruleFailed = false,
[8355] Fix | Delete
line, col;
[8356] Fix | Delete
[8357] Fix | Delete
// Mark the start of a @font-face declaration so we only test properties inside it
[8358] Fix | Delete
parser.addListener("startfontface", function() {
[8359] Fix | Delete
fontFaceRule = true;
[8360] Fix | Delete
});
[8361] Fix | Delete
[8362] Fix | Delete
parser.addListener("property", function(event) {
[8363] Fix | Delete
// If we aren't inside an @font-face declaration then just return
[8364] Fix | Delete
if (!fontFaceRule) {
[8365] Fix | Delete
return;
[8366] Fix | Delete
}
[8367] Fix | Delete
[8368] Fix | Delete
var propertyName = event.property.toString().toLowerCase(),
[8369] Fix | Delete
value = event.value.toString();
[8370] Fix | Delete
[8371] Fix | Delete
// Set the line and col numbers for use in the endfontface listener
[8372] Fix | Delete
line = event.line;
[8373] Fix | Delete
col = event.col;
[8374] Fix | Delete
[8375] Fix | Delete
// This is the property that we care about, we can ignore the rest
[8376] Fix | Delete
if (propertyName === "src") {
[8377] Fix | Delete
var regex = /^\s?url\(['"].+\.eot\?.*['"]\)\s*format\(['"]embedded-opentype['"]\).*$/i;
[8378] Fix | Delete
[8379] Fix | Delete
// We need to handle the advanced syntax with two src properties
[8380] Fix | Delete
if (!value.match(regex) && firstSrc) {
[8381] Fix | Delete
ruleFailed = true;
[8382] Fix | Delete
firstSrc = false;
[8383] Fix | Delete
} else if (value.match(regex) && !firstSrc) {
[8384] Fix | Delete
ruleFailed = false;
[8385] Fix | Delete
}
[8386] Fix | Delete
}
[8387] Fix | Delete
[8388] Fix | Delete
[8389] Fix | Delete
});
[8390] Fix | Delete
[8391] Fix | Delete
// Back to normal rules that we don't need to test
[8392] Fix | Delete
parser.addListener("endfontface", function() {
[8393] Fix | Delete
fontFaceRule = false;
[8394] Fix | Delete
[8395] Fix | Delete
if (ruleFailed) {
[8396] Fix | Delete
reporter.report("@font-face declaration doesn't follow the fontspring bulletproof syntax.", line, col, rule);
[8397] Fix | Delete
}
[8398] Fix | Delete
});
[8399] Fix | Delete
}
[8400] Fix | Delete
});
[8401] Fix | Delete
[8402] Fix | Delete
/*
[8403] Fix | Delete
* Rule: Include all compatible vendor prefixes to reach a wider
[8404] Fix | Delete
* range of users.
[8405] Fix | Delete
*/
[8406] Fix | Delete
[8407] Fix | Delete
CSSLint.addRule({
[8408] Fix | Delete
[8409] Fix | Delete
// rule information
[8410] Fix | Delete
id: "compatible-vendor-prefixes",
[8411] Fix | Delete
name: "Require compatible vendor prefixes",
[8412] Fix | Delete
desc: "Include all compatible vendor prefixes to reach a wider range of users.",
[8413] Fix | Delete
url: "https://github.com/CSSLint/csslint/wiki/Require-compatible-vendor-prefixes",
[8414] Fix | Delete
browsers: "All",
[8415] Fix | Delete
[8416] Fix | Delete
// initialization
[8417] Fix | Delete
init: function (parser, reporter) {
[8418] Fix | Delete
"use strict";
[8419] Fix | Delete
var rule = this,
[8420] Fix | Delete
compatiblePrefixes,
[8421] Fix | Delete
properties,
[8422] Fix | Delete
prop,
[8423] Fix | Delete
variations,
[8424] Fix | Delete
prefixed,
[8425] Fix | Delete
i,
[8426] Fix | Delete
len,
[8427] Fix | Delete
inKeyFrame = false,
[8428] Fix | Delete
arrayPush = Array.prototype.push,
[8429] Fix | Delete
applyTo = [];
[8430] Fix | Delete
[8431] Fix | Delete
// See http://peter.sh/experiments/vendor-prefixed-css-property-overview/ for details
[8432] Fix | Delete
compatiblePrefixes = {
[8433] Fix | Delete
"animation" : "webkit",
[8434] Fix | Delete
"animation-delay" : "webkit",
[8435] Fix | Delete
"animation-direction" : "webkit",
[8436] Fix | Delete
"animation-duration" : "webkit",
[8437] Fix | Delete
"animation-fill-mode" : "webkit",
[8438] Fix | Delete
"animation-iteration-count" : "webkit",
[8439] Fix | Delete
"animation-name" : "webkit",
[8440] Fix | Delete
"animation-play-state" : "webkit",
[8441] Fix | Delete
"animation-timing-function" : "webkit",
[8442] Fix | Delete
"appearance" : "webkit moz",
[8443] Fix | Delete
"border-end" : "webkit moz",
[8444] Fix | Delete
"border-end-color" : "webkit moz",
[8445] Fix | Delete
"border-end-style" : "webkit moz",
[8446] Fix | Delete
"border-end-width" : "webkit moz",
[8447] Fix | Delete
"border-image" : "webkit moz o",
[8448] Fix | Delete
"border-radius" : "webkit",
[8449] Fix | Delete
"border-start" : "webkit moz",
[8450] Fix | Delete
"border-start-color" : "webkit moz",
[8451] Fix | Delete
"border-start-style" : "webkit moz",
[8452] Fix | Delete
"border-start-width" : "webkit moz",
[8453] Fix | Delete
"box-align" : "webkit moz ms",
[8454] Fix | Delete
"box-direction" : "webkit moz ms",
[8455] Fix | Delete
"box-flex" : "webkit moz ms",
[8456] Fix | Delete
"box-lines" : "webkit ms",
[8457] Fix | Delete
"box-ordinal-group" : "webkit moz ms",
[8458] Fix | Delete
"box-orient" : "webkit moz ms",
[8459] Fix | Delete
"box-pack" : "webkit moz ms",
[8460] Fix | Delete
"box-sizing" : "",
[8461] Fix | Delete
"box-shadow" : "",
[8462] Fix | Delete
"column-count" : "webkit moz ms",
[8463] Fix | Delete
"column-gap" : "webkit moz ms",
[8464] Fix | Delete
"column-rule" : "webkit moz ms",
[8465] Fix | Delete
"column-rule-color" : "webkit moz ms",
[8466] Fix | Delete
"column-rule-style" : "webkit moz ms",
[8467] Fix | Delete
"column-rule-width" : "webkit moz ms",
[8468] Fix | Delete
"column-width" : "webkit moz ms",
[8469] Fix | Delete
"hyphens" : "epub moz",
[8470] Fix | Delete
"line-break" : "webkit ms",
[8471] Fix | Delete
"margin-end" : "webkit moz",
[8472] Fix | Delete
"margin-start" : "webkit moz",
[8473] Fix | Delete
"marquee-speed" : "webkit wap",
[8474] Fix | Delete
"marquee-style" : "webkit wap",
[8475] Fix | Delete
"padding-end" : "webkit moz",
[8476] Fix | Delete
"padding-start" : "webkit moz",
[8477] Fix | Delete
"tab-size" : "moz o",
[8478] Fix | Delete
"text-size-adjust" : "webkit ms",
[8479] Fix | Delete
"transform" : "webkit ms",
[8480] Fix | Delete
"transform-origin" : "webkit ms",
[8481] Fix | Delete
"transition" : "",
[8482] Fix | Delete
"transition-delay" : "",
[8483] Fix | Delete
"transition-duration" : "",
[8484] Fix | Delete
"transition-property" : "",
[8485] Fix | Delete
"transition-timing-function" : "",
[8486] Fix | Delete
"user-modify" : "webkit moz",
[8487] Fix | Delete
"user-select" : "webkit moz ms",
[8488] Fix | Delete
"word-break" : "epub ms",
[8489] Fix | Delete
"writing-mode" : "epub ms"
[8490] Fix | Delete
};
[8491] Fix | Delete
[8492] Fix | Delete
[8493] Fix | Delete
for (prop in compatiblePrefixes) {
[8494] Fix | Delete
if (compatiblePrefixes.hasOwnProperty(prop)) {
[8495] Fix | Delete
variations = [];
[8496] Fix | Delete
prefixed = compatiblePrefixes[prop].split(" ");
[8497] Fix | Delete
for (i = 0, len = prefixed.length; i < len; i++) {
[8498] Fix | Delete
variations.push("-" + prefixed[i] + "-" + prop);
[8499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function